Mysqli_stmt_get_result在PHP 5.5.3中返回致命错误

时间:2013-11-11 01:11:39

标签: php mysql mysqli

我正在运行安装了php 5.5.3的apache2本地开发服务器。出于某种原因,我收到了错误

Fatal error: Call to undefined function mysqli_stmt_get_result()

在我的所有网页上。我已经在php文档中读到get_result()方法需要MySQL Native Driver(mysqlnd),但是在MySQL网站上它说“从PHP 5.4开始,mysqlnd库是php.net编译时默认为所有PHP MySQL扩展名”。我已经尝试过安装php5-mysqlnd,当我这样做时会覆盖我之前的mysql和mysqli conf文件,导致我收到错误

Fatal error: Call to undefined function mysqli_connect()

当我重新安装php5-mysql时,它会删除mysqlnd包。我并不是真的关心安装软件包我更想知道为什么mysqlnd在PHP 5.5.3中不被认为是应该包的,我该如何启用呢?提前谢谢!

运行Ubuntu 13.10上的Apache 2服务器:

[~]$ php5 --version
PHP 5.5.3-1ubuntu2 (cli) (built: Oct  9 2013 14:49:12) 
Copyright (c) 1997-2013 The PHP Group

[~]$ mysql --version
mysql  Ver 14.14 Distrib 5.5.34, for debian-linux-gnu (x86_64) using readline 6.2

编辑:

我已将扩展名添加到位于/etc/php5/apache2/php.ini的php.ini文件中。该文件为:

; If you wish to have an extension loaded automatically, use the following
; syntax:
;
;   extension=modulename.extension
;
; For example, on Windows:
;
;   extension=msql.dll
;
; ... or under UNIX:
;
;   extension=msql.so
;
; ... or with a path:
;
;   extension=/path/to/extension/msql.so

extension=/usr/lib/php5/20121212/curl.so
extension=/usr/lib/php5/20121212/json.so
extension=/usr/lib/php5/20121212/mysqli.so
extension=/usr/lib/php5/20121212/mysql.so
extension=/usr/lib/php5/20121212/mysqlnd.so

1 个答案:

答案 0 :(得分:5)

检查您的php.ini以检查MySQLi的扩展名是否已取消注释。它的外观示例如下:

extension=php_ldap.dll
;extension=php_mssql.dll
;extension=php_mbstring.dll
;extension=php_exif.dll      ; Must be after mbstring as it depends on it
extension=php_mysql.dll
extension=php_mysqli.dll

如果这有;然后将其删除,请将更改保存到php.ini并通过调用重新启动apache:

/etc/init.d/apache restart

如果你不确定php.ini的位置,请创建一个简单的页面:

<?php
  phpinfo();
?>

并检查一下:

  

加载配置文件:dir / to / php.ini

或者甚至运行phpinfo();开始并检查:

MySQLI Enabled in phpinfo