PHP函数mysqli_bind_param参数错误

标签 php mysql mysqli

我正在尝试学习新的 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/

相关文章:

mysql - Rails Arel 通过连接表上的 where 条件进行连接

php - Zend 2-理论如何为三个实体一对多插入?

php - 在 php 中,即使在简短的条件语句中也应该使用大括号吗?

php - 使用 Memcache 构建 PHP/Javascript 聊天室

php - 当我在bind_param上工作时,我正在用php的OOPs概念制作一个用于图像上传的函数,我不知道图像s或i

php - 如何将 COUNT() 与 MYSQLi 和准备好的语句一起使用?

php - 如何在 Yii2 上使用 mysqli_info

php - 空格返回表中的所有结果

php - laravel 中的中间件是什么?

php - 将 JSON 数组转换为 JSON 格式