我能够使用mysqli(在PHP中)执行多个预处理语句。但是,由于某种原因,当我尝试运行“SELECT”命令时,预处理语句总是会遇到错误。 例如,以下行将成功:
$stmt=$mysqli->prepare("UPDATE events SET category='m' WHERE id=(?)");
然而,以下一行将失败:
$stmt=$mysqli->prepare("SELECT * FROM events WHERE id=(?)");
当我说失败时,我的意思是下面三行代码将返回1,表明UPDATE命令更改了一行记录...
$stmt->bind_param('i',$id);
$stmt->execute();
echo $stmt->affected_rows;
下面三行代码将会返回 SELECT 的值为 0:
$stmt->bind_param('i',$id);
$stmt->execute();
echo $stmt->num_rows;
顺便说一下,我知道为单个SELECT准备语句并不是很有效 - 这个问题大多是学术性的。