我想知道是否有可能以这种方式使用多个查询?这将使我的工作变得简单或以其他任何方式做到这一点?刚转到<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="//tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
所以不知道。谢谢你
mysqli prepared statement
答案 0 :(得分:0)
$stmt = $stmt->get_result()
返回mysqli_result并且它不再是准备好的语句,因此你不能做多个查询。
答案 1 :(得分:-3)
您不能对预准备语句使用“多个查询”。但是,您可以使用不同的参数集执行相同的查询 - 这正是准备语句的用途。根据您的代码判断,您需要第二个选项(所以我更正了问题标题)。您只需为已绑定的变量提供另一个值。
你去:
$mysqli = new mysqli('localhost', 'root', '', 'demo');
$stmt = $mysqli -> prepare("SELECT * FROM users WHERE id = ?");
$stmt->bind_param('i', $id);
$stmt->execute();
$res = $stmt->get_result();
while ($row = $res->fetch_assoc()) {
//do something with row
}
$id = $id2; // you need to use the same variable you bound
$stmt->execute();
$res = $stmt->get_result();
while ($row = $res->fetch_assoc()) {
//do something with row
}
噢,是的,你的代码中也有一个愚蠢的拼写错误,现在已修复。你不应该覆盖语句变量。