当进行多个查询时,未为预处理语句中的参数提供数据


No data supplied for parameters in prepared statement when multiple queries

$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()来清除结果集;

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