动态地使用$ stmt-> bind_param()方法在php中绑定多个值

时间:2014-10-14 14:57:26

标签: php mysqli

大家好我想创建一个更新mysql数据库的简单php应用程序,我正在使用mysqli prepare方法。 我在绑定参数方面遇到问题,我想要做的是bind_param()应该动态获取其值。 这段代码只是一个简单的演示代码 这是代码

if(isset($_POST['submit']))
{
$name = $_POST['name'];
$mysqli = new mysqli("localhost","root","9889922527","demo");
if($mysqli===false)
{
die("error".mysqli_connect_error());
}
else
{
  $sql = "update `table1` set `name` = ? where id = ?"; 
  if($stmt=$mysqli->prepare($sql))
  {
   $stmt->bind_param("ss",bind());
   $stmt->execute();
   echo $stmt->affected_rows;
  }
 else
    {
       echo "error:".$mysqli->error;
    }
    $stmt->close();
  }
    $mysqli->close();
      }

      function bind()
    {
$name = 'vivs'; //just for demo
$id = 1;
$param[0] = $name;
$param[1] = $id;
$val_type = str_repeat("s",count($param));
$value = implode(",",$param);
    //$bind = implode($val_type,$value);
    //return $val_type;
return implode(",",$param);
   }

// $ stmt-> bind_param(“ss”,$ name,$ id);我不想使用它,因为在我的执行代码中我使用OOP功能来更新数据库,所以我需要提供动态值来绑定, 我已经尝试了所有可能的方法,但每次我收到此警告“警告:mysqli_stmt :: bind_param():类型定义字符串中的元素数与”

中的绑定变量数不匹配

0 个答案:

没有答案