[ 已解决 ] 菜鸟请教一下 php 的 mysqli 问题

系统是 openSUSE 13.1,zypper 安装了 php,apache,mariadb
在《php 和 mysql-web 开发》这本书中有一个 php 链接 mysql 的代码:

<?php
$db = new mysqli('localhost', 'bookorama', 'bookorama123', 'books');
if(mysqli_connect_errno())
{
        echo 'Error: Could not connect to database. Please try again later.';
        exit;
}
$query = "select * from books where ".$searchtype." like '%".$searchterm."%'";
$result = $db->query($query);
$num_results = $result->num_rows;
?>

其中最主要的就是那一句 $db = new mysqli,这句在我的电脑上无法使用,好像是因为 php 没有进行 mysqli的扩展,所以只能用老式的 mysqli_connect 函数,在 php 官网上看到有教程安装 mysqli 扩展,方法是执行如下代码:

./configure --with-mysql=/usr/bin/mysql_config  \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd

不过我的 /usr/bin/ 目录下没有 mysql_config。。。所以执行失败了,请教一下各位有了解的么。。谢谢啦

不搞开发的桌面用户来猜一下:应该只需要安装 php5-mysql 这个包就行了,用 zypper
不要按照官网的乱搞。在 Linux 中的,大部分东西都能自动。

可以肯定的是系统默认已经安装了 mysqli 模块,在你教程的上边应该会有地方定义 mysqli 这个类才对。
或者你可以 phpinfo() 看下 mysqli 模块是否开启。

同意二楼,配 PHP+MySQL 环境大多数情况下需要的包是这几个 php-common php-fpm(或者别的工作模式) php-mysql mysql-server mysql-client, 这几个包在不同发行版中的名字可能不同,以及有些可能会合并

还有就是在很多发行版中,mysql 已经被 mariadb 取代了。

你们是对的,phpinfo() 中确实有 mysqli 模块的信息,看来是我刚学 php 自己的语法有问题,哈哈见笑了 :slight_smile: