我的以下php MYSQLi无效,PHP版本5.9
$query = $conn->prepare("SELECT * FROM users WHERE token= ? LIMIT 1");
$query->bind_param('s',$cvalue);
$query->execute();
$result = $query->get_result();
$row = $result->fetch_assoc();
它给了我以下错误:
致命错误:调用未定义的方法mysqli_stmt :: get_result()
错误在哪里?我该如何解决?感谢
答案 0 :(得分:4)
评论太长了。
试试这个:
if($statement=$conn->prepare("SELECT * FROM users WHERE token= ? LIMIT 1")){
$statement-> bind_param('s',$cvalue);
// Execute
$statement-> execute();
// Bind results
$statement-> bind_result($token);
// Fetch value
while ( $statement-> fetch() ) {
echo $token . "<br>";
}
// Close statement
$statement-> close();
}
// Close entire connection
$conn-> close();
现在,如果while ( $statement-> fetch() )
没有像您希望的那样工作,请尝试将其替换为while ( $statement-> fetch_assoc() )
,就像现在一样。
<强> 脚注: 强>
正如Rocket Hazmat在评论中所述,我引述:它需要两者 PHP 5.3+ 和 mysqlnd驱动程序。
因此,请确保已安装驱动程序。
答案 1 :(得分:4)
如上所述,请确保已安装mysqlnd。
我花了一个小时搜索StackOverflow上的所有答案,因为我错过了一个至关重要的步骤而且我的脚本仍然失败了 - 这一步重新启动了httpd守护程序。
卸载php-mysql 安装php-mysqlnd
对我来说,运行Centos 5.6和php55,这是
的情况yum删除-y php55w-mysql yum install -y php55w-mysqlnd
这一切都很完美,但我的PHP仍然失败并出现错误&#34;调用未定义的方法mysqli_stmt :: get_result&#34;
所以我重新启动了Apache
service httpd restart
和 - TA-DA - 它完美无缺。
答案 2 :(得分:1)
如果您使用的是虚拟专用服务器
转到此目录 的/ var /的cPanel /易/阿帕奇/ rawopts
并创建一个新文件all_php5 [/ var / cpanel / easy / apache / rawopts] #cat&gt; all_php5
添加以下文字并关闭文件
--with-的mysqli = MySQL的
在WHM中轻松实现Apache v3.32.14 自定义基本配置文件并在穷举选项列表和构建中启用MySQL“改进”扩展。