如何用MySQLI多次绑定param?

时间:2011-11-02 12:15:50

标签: php mysql binding mysqli param

这就是我约束我的参数:

$Con = mysqli_connect(...);
$Statement = mysqli_stmt_init($Con);

mysqli_stmt_prepare($Statement,"select * from users where name=? and email=?");
mysqli_stmt_bind_param("s",$Username);
mysqli_stmt_bind_param("s",$Email); <-- it fails here

但是当我将mysqli_stmt_bind_param的2个调用替换为:

时,它在其他情况下工作正常
mysql_stmt_bind_param("ss",$Username,$Email)

问题是我有一系列参数;我必须逐个绑定它们因为我不知道参数的数量

3 个答案:

答案 0 :(得分:5)

您的方法不起作用,因为正确使用mysqli_stmt_bind_param的正确方法如下:

mysql_stmt_bind_param("ss",$Username,$Email)

参考:http://php.net/manual/en/mysqli-stmt.bind-param.php

知道参数的数量使得count()数组。

答案 1 :(得分:4)

MySQLi的语句绑定确实不适合可变数量的参数。

我强烈建议您切换到PDO

$stmt = $pdo->prepare('select * from users where name=? and email=?');
$stmt->execute($numericArrayOfParameters);

答案 2 :(得分:-2)

有点offtopic但我觉得它很重要。

mysql_stmt_bind_param手册页中最近的一条用户评论包含了这个问题的确切答案。

你知道,这个网站虽然鼓励懒惰,但并不总是比老谷歌和手册更能回答你的问题。