多个查询时,没有为预准备语句中的参数提供数据

时间:2013-04-25 16:58:37

标签: php mysqli

$result = $mysqli->query("SELECT * FROM news");
$news = $result->fetch_assoc();


$data = "test";
$query = "UPDATE news SET last_query = UNIX_TIMESTAMP(), news = ?";
$stmt = $mysqli->prepare($query);
var_dump($mysqli->error); # empty
var_dump($stmt->bind_param("s", $data)); # true
var_dump($stmt->prepare($query)); # true
var_dump($stmt->execute()); # false
var_dump($stmt->error); # No data supplied for parameters in prepared statement
$stmt->close();

删除第一个查询,导致第二个查询正常运行,这是我从结果集中剩余的结果中读取的结果(即使它从单行数据库中读取)。但即使用$ result-> free()清除结果集;似乎没有解决它。

1 个答案:

答案 0 :(得分:0)

$stmt->prepare用于读取数据,更新表时不应使用。