PHP函数mysqli_bind_param错误与参数

时间:2014-07-09 14:48:47

标签: php mysql mysqli

我试图学习新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

我不知道为什么......只有一个?并且我通过了一个独特的参数......问题出在哪里?

1 个答案:

答案 0 :(得分:0)

您不能在字符串中放置参数。所以它不是一个有效的参数。

尝试:

"SELECT * FROM provautenti WHERE nome LIKE CONCAT( ? ,'%')"