我有一段时间没有这个错误,我无法找到解决方案。这是php文件:
<?php
$mysqli=new mysqli("127.0.0.1", "username", "password", "database"); // The actual php file has the real credentials.
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
var_dump($mysqli);
$stmt = mysqli_stmt_init($mysqli);
var_dump($stmt);
if ($stmt = $mysqli->prepare('SELECT * FROM test WHERE a=?;')) {
$stmt->bind_param('s', $_POST['data']);
$stmt->execute();
var_dump($stmt);
$result = $stmt->get_result();
echo "<table border=1>";
while ($row = $result->fetch_assoc()) {
echo "<tr>";
echo "<td>" . $row['a'] . "</td><td>" . $row['b'] . "</td><td>" . $row['c'] . "</td>";
echo "</tr>";
}
echo "</table>";
}
else
{
printf("Errormessage: %s\n", $mysqli->error);
}
mysqli_close($mysqli);
?>
我打算用它来查找表中的所有行&#34; test&#34;其中a = [无论用户说什么]没有sql注入的风险。相反,它会在网页上生成:
object(mysqli)#1 (0) { } object(mysqli_stmt)#2 (0) { } object(mysqli_stmt)#3 (0) { }
Fatal error: Call to undefined method mysqli_stmt::get_result() in /public_html/test/test.php on line 20
我意识到object(mysqli)#1 (0)...
来自我所拥有的var_dumps。我把它们放进去看看程序中的任何一点是否都设置为null。
我甚至在这个PHP手册页上复制并粘贴了这个例子,但我仍然遇到了这个错误 http://php.net/manual/en/mysqli-stmt.get-result.php
编辑:我更新到版本5.3.27,但错误仍然存在。
答案 0 :(得分:1)
两种直接的可能性:
请注意,此方法需要mysqlnd驱动程序。 其他人你会得到这个错误:调用未定义的方法mysqli_stmt :: get_result()
PHP
版本不是>= 5.3