以下语句在PHP 5.2下完全正常:
$db = new mysqli($db_host, $db_user, $db_pass, $database);
$sql = $db->prepare('SELECT id, field1, field2, field3 FROM people WHERE email = ? AND pass=?');
$user = strtolower($_POST['user']);
$pass = md5($_POST['pass']);
$sql -> bind_param('ss', $user ,$pass);
$sql -> execute();
$sql -> bind_result($id, $field1, $field2, $field3);
if ($sql -> fetch()) {
...
}
但是,升级到PHP 5.4后,fetch()
失败并出现以下错误:
Attempt to read a row while there is no result set associated with the statement
我找不到任何关于我使用的功能和我使用它们的方式发生了变化的提示。我已经看到在{5.3}中使用数组的bind_param
发生了变化,但由于我在这里没有使用数组,所以我认为我不会受到这种变化的影响。