我试图学习新mysqli函数的使用(之前我在程序风格中使用了mysql_ *)。我正在从MySQL数据库开发一个非常简单的查询:我想获取provautenti表中的所有行,其中name以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
我不知道为什么......只有一个?并且我通过了一个独特的参数......问题出在哪里?
答案 0 :(得分:0)
您不能在字符串中放置参数。所以它不是一个有效的参数。
尝试:
"SELECT * FROM provautenti WHERE nome LIKE CONCAT( ? ,'%')"