无法使用PDO连接PHP和Mysql

无法使用PDO连接PHP和Mysql

编译php后输入

./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-pdo-mysql

我可以成功连接到数据库,但随后我启用了 openssl 和 mbstring 扩展

我输入了

./configure --with-openssl --with-apxs2=/usr/local/apache2/bin/apxs

./configure --with-apxs2=/usr/local/apache2/bin/apxs --enable--mbstring --with-libmbfl

现在我无法连接php和mysql。

这是我正在使用的代码:

?php
$username = "phptest";
$servername = "localhost";
$password = "cucaramacara";
$dbname = "phpsampledb";


try{
  $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password$
  //set the PDO
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "Connected succesfully";
}
catch(PDOException $e){
        echo "Connection failed:".$e->getMessage();
}

?>

当我php在终端上输入时,它显示:

PHP 警告:PHP 启动:无法加载动态库 '/usr/local/lib/php/extensions/no-debug-zts-20131226/pdo_mysql.so' - /usr/local/lib/php/extensions/no-debug -zts-20131226/pdo_mysql.so: 无法打开共享对象文件: 第 0 行的未知中没有这样的文件或目录

答案1

正如 yoonix 所说,你是做错了configure应该运行脚本一次全部您要指定的选项:

./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-pdo-mysql \
             --with-openssl --enable--mbstring --with-libmbfl

来电configure不会累积 - 他们覆盖彼此。最后一名获胜。

配置的每个选项都指定对供应商默认值的更改,因此您在描述中所做的就是告诉configure以下内容:

./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-pdo-mysql

请准备构建 PHP。使用所有默认设置,除了我想使用 PDO MySQL 驱动程序。

因此configure准备使用 PDO MySQL 驱动程序进行构建。然后你告诉它
./configure --with-openssl --with-apxs2=/usr/local/apache2/bin/apxs

请准备构建 PHP。使用所有默认设置,除了我想要启用 OpenSSL。

所以configure准备一个启用OpenSSL的构建,以及所有其他默认值(再见PDO MySQL驱动程序,因为这不是默认行为)。

然后你告诉它
./configure --with-apxs2=/usr/local/apache2/bin/apxs --enable--mbstring --with-libmbfl

请准备构建 PHP。使用所有默认设置除了启用多字节字符串和libmfl.

因此,configure 使用这些选项准备构建 - 没有 PDO(因为这不是默认值),并且我认为没有 OpenSSL(因为我认为这也不是默认值)。

当您make每次仅使用指定的选项进行构建时运行你上次跑步的时候configure

相关内容