Php 致命错误:调用未定义的方法mysqli_stmt::get_result()
我下面的php MYSQLi不工作,php版本5.9Php 致命错误:调用未定义的方法mysqli_stmt::get_result(),php,mysql,mysqli,Php,Mysql,Mysqli,我下面的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(); 它
$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\u stmt::get\u result
错误在哪里?我怎样才能修好它?谢谢评论太长了 试试这个:
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\u assoc替换它,就像您现在的方式一样
注:如果这对你不起作用,我将删除答案。
脚注:
正如Rocket Hazmat在一篇评论中所说的,我引述:它需要PHP5.3+和mysqlnd驱动程序
因此,请确保安装了驱动程序
如上所述,确保安装了mysqlnd 我刚刚花了一个小时来整理StackOverflow的所有答案,因为我错过了一个重要步骤,而我的脚本仍然失败——这一步骤是重新启动httpd守护进程 卸载php mysql 安装php mysqlnd 对于我来说,运行Centos 5.6和php55,这是一个 yum删除-y php55w mysql yum安装-y php55w mysqlnd 这一切都进行得很顺利,但我的PHP仍然失败,错误调用了未定义的方法mysqli\u stmt::get\u result 所以我重新启动了Apache 服务httpd重启
而且-嗒嗒-它工作得很好 如果您使用的是虚拟专用服务器 转到这个目录 /var/cpanel/easy/apache/rawopts 并创建一个新的文件,所有 [/var/cpanel/easy/apache/rawopts]cat>all\u php5 添加以下文本并关闭文件 -使用mysqli=mysql 在WHM中轻松使用Apache v3.32.14 自定义基本配置文件,并在详尽的选项列表和构建中启用MySQL改进扩展
mysqli_stmt::get_result仅适用于mysqlnd。-你在谷歌上搜索过你的错误消息吗?@Fred ii-在PHP5.3中,默认情况下它不是可用的吗?注意:mysqli_stmt::get_result仅在PHPV5.3.0或更高版本上可用。您提到它后,请在此处找到它,是的。我觉得很奇怪。看到这个问答-我会看看是否能找到更多。@Fred ii-那么有没有其他方法可以通过使用fetch_assoc而不使用get_result从execute获取结果?我可以在下面发布一个答案,因为注释太长了。你可以试试看。听起来怎么样?看起来这并不是这个问题的答案。托尼有完全相同的问题和行为::调用未定义的方法mysqli_stmt::get_result。问题是没有mysqlnd,您可以尝试所有其他喜欢的方法,但是如果您使用的是语句,则需要nd驱动程序。如果您想要nd驱动程序,只需安装它就无法工作-您需要重新启动httpd。重新绑定结果的公认答案是IMHO误导。这是一个驱动程序安装和配置问题。什么是$token?编辑:哦,这是查询中的内容。fetch_assoc不适用于station,但仅适用于结果集: