我有一个 shell 脚本,它在解析文本文件后调用 php 脚本在数据库中插入记录。当它调用 PHP 脚本时,我收到无法找到 mysqli 的错误:
PHP Fatal error: Class 'mysqli' not found in /path/to/php/file.php on line 5
这在带有 Nginx 和 PHP-FPM 和 Mysql 5.5.x 的 Macbook Pro 上本地失败,在我将套接字参数添加到 mysqli 调用后,它在本地工作。 这适用于本地数据库!
$mysqli = new mysqli("localhost", "user", "pass", "mydb", 3306, "/tmp/mysql.sock");
我部署到安装了 Linux 服务器(安装了 'yum install php' 和 PHP 5.3.x 的 CentOS6)。我更改了与远程数据库服务器的连接,因此删除了“/tmp/mysql.sock”,因为数据库没有在该服务器上运行。
Shell脚本调用php执行脚本:
php -c "/etc/php.ini" -f "/path/to/php/file.php"
鉴于我没有在本地运行 mysql,我如何让它识别 mysqli lib 并执行。它在 CentOS6 上。我什至尝试将 mysqli.so 添加到 php.ini 文件并收到以下错误:
[mike@app2 myapp]# php -version
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/mysqli.so' - /usr/lib64/php/modules/mysqli.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP 5.3.3 (cli) (built: Feb 2 2012 23:47:49)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
感谢您提供解决此问题的任何帮助。通常我会使用 mysql(query) 但需要 mysqli() 用于脚本中的一些准备好的语句和其他位。