我正在尝试学习新的 mysqli 函数的用法(之前我以程序风格使用 mysql_*)。我正在从 MySQL 数据库开发一个非常简单的查询:我想获取 provautenti 表中的所有行,其中名称以 L 字母开头。
$risultati = $conn->prepare("select * from provautenti where nome like '?%'");
$letteracercata = 'l';
$risultati->bind_param('s', $letteracercata);
$risultati->execute();
$risultati->store_result();
if ($risultati->num_rows > 0) {
echo '<tr><td>id</td><td>nome</td><td>indirizzo</td><td>professione</td></tr><tr>';
$risultati->bind_result($id, $nome, $indirizzo, $professione);
while ($risultati->fetch())
echo '<tr><td>'.$id.'</td><td>'.$nome.'</td><td>'.$indirizzo.'</td><td>'.$professione.'</td></tr>';
echo '</tr>';
}
else
echo 'Nessun risultato';
$risultati->close();
错误是:
mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement
我不知道为什么......只有一个?我正在传递一个唯一的参数...问题出在哪里?
最佳答案
不能将参数放入字符串中。所以它不是一个有效的参数。
尝试:
"SELECT * FROM provautenti WHERE nome LIKE CONCAT( ? ,'%')"
关于PHP函数mysqli_bind_param参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24656907/