我正在运行一个安装了php5.5.3的apache2本地开发服务器。由于某种原因,我得到了错误。
Fatal error: Call to undefined function mysqli_stmt_get_result()在我所有的书页上。我在php文档中看到get_result()方法需要MySQL本机驱动程序( mysqlnd ),但是在MySQL网站上,它说“截至PHP5.4,mysqlnd库是所有PHP MySQL扩展的php.net编译时缺省值”。无论如何,我都尝试过安装php5 5-mysqlnd,当我这样做时,会覆盖我以前的mysql和mysqli conf文件,导致我得到了错误。
Fatal error: Call to undefined function mysqli_connect()当我重新安装php5-mysql时,它会删除mysqlnd包。我并不真正关心软件包的安装--我更想知道为什么mysqlnd在PHP5.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 5/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发布于 2013-11-11 01:17:43
检查您的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的更改,然后通过调用:
/etc/init.d/apache restart如果您不确定php.ini的位置,请使用以下内容创建一个简单的页面:
<?php
phpinfo();
?>检查线路:
加载配置文件: dir/to/php.ini
甚至运行phpinfo();开始并检查:

https://stackoverflow.com/questions/19897382
复制相似问题