当我使用这样的东西时:
$stmt = $dbConnection->prepare('SELECT * FROM employees WHERE name = ?');
$stmt->bind_param('s', $name);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
// do something with $row
}
根据这个答案:
How can I prevent SQL injection in PHP?
我收到这个错误:
调用未定义的方法mysqli_stmt :: get_result()
因为get_result仅适用于mysqlnd(get_result php reference)。
那么有没有替代方法如何获得所有列?如果我不想绑定所有列(使用bind_result()),因为在我的情况下我会查询3个表,我只是不想绑定所有列,因为它是一个疯狂的工作。
所以我不想使用bind_result(),get_resuslt没有任何替代工作或者它意味着我不能使用准备好的语句,只有机会回到这个:
sql = "SELECT * FROM ...." //just some query
$query = mysqli_query($db_donnection, $sql);
while ($row = mysqli_fetch_array($query, MYSQLI_ASSOC)) {
$id = $row["id"];
$e = $row["email"];
//....
}