簡體   English   中英

php:mysql_connect()失敗,沒有錯誤消息

[英]php: mysql_connect() failing with no error message

我正在CentOS 5.6的命令行上運行一個簡單的測試腳本,並從CentOS / RHEL 5.6的PHP 5.3安裝了PHP軟件包

PHP在所有其他情況下都可以正常運行,但是當我點擊mysql_connect()它將失敗且沒有錯誤。

如果我跑步

$ php -m

我沒有將MySQL視為已安裝的模塊。

但是,我已將extension=mysql.so添加到我的php.ini中並重新啟動。

輸出'rpm -qa | grep php'

php-common-5.3.10-1.w5
php-5.3.10-1.w5
php-cli-5.3.10-1.w5

'yum install php-mysql'的輸出

  --> Missing Dependency: php-common = 5.1.6-27.el5_7.5 is needed by package php-mysql-5.1.6-27.el5_7.5.x86_64 (updates)
php-pdo-5.1.6-27.el5_7.5.x86_64 from updates has depsolving problems
  --> Missing Dependency: php-common = 5.1.6-27.el5_7.5 is needed by package php-pdo-5.1.6-27.el5_7.5.x86_64 (updates)
Error: Missing Dependency: php-common = 5.1.6-27.el5_7.5 is needed by package php-pdo-5.1.6-27.el5_7.5.x86_64 (updates)
Error: Missing Dependency: php-common = 5.1.6-27.el5_7.5 is needed by package php-mysql-5.1.6-27.el5_7.5.x86_64 (updates)
 You could try using --skip-broken to work around the problem
 You could try running: package-cleanup --problems
                        package-cleanup --dupes
                        rpm -Va --nofiles --nodigest
The program package-cleanup is found in the yum-utils package.
 I am not seeing MySQL as an installed module.

你安裝了嗎?

# yum install php-mysql

(從安裝php的同一倉庫中)。

編輯:

運行這個:

yum --enablerepo=webtatic install php-mysql

這告訴yum從webtatic倉庫(除了系統配置的倉庫)中獲取軟件包。 如果要在啟用系統的存儲庫中進行Webtatic,請運行:

 yum --enablerepo=webtatic install  webtatic-release

首先,一些建議:停止使用mysql庫,並至少使用PDO或mysqli庫。

現在獲取一些故障排除幫助:第一步是100%確保mysql正在加載。 使用以下命令創建腳本(基於Web):

phpinfo();

確認此頁面某處是否有塊,指示正在加載mysql擴展。

無論您在哪里測試,都不確定錯誤,請在調用mysql_connect之前添加以下行:

ini_set('display_errors', 1);
ini_set('log_errors', 1); 
error_reporting(E_ALL | E_STRICT);

這將確保您在連接之前不會抑制其他地方的錯誤。 有些框架有時會這樣做。

如果確實是模塊正在加載,並且添加了錯誤日志代碼,您仍然不會收到有效錯誤。 我會嘗試在命令行php腳本中進行連接。 在php.ini文件中查看“ error_log”的設置。 這是它將記錄到的默認日志-有時基於HTTP的設置會覆蓋日志記錄,因此即使拋出錯誤,您也看不到或找不到它們。 命令行php腳本將其排除在外。

最后但並非最不重要的一點是,您始終可以將連接字符串發布到此帖子中。 嘗試使用與mysql_connect相同的憑據的mysql命令從服務器上的命令行作為腳本進行連接。 您也許可以很好地連接,但是憑據不正確。

如果模塊未加載,請嘗試准確查找模塊所在的位置,並將完整路徑放入php.ini中。 百勝有時會在php.ini所需要的位置安裝東西。 在Yum安裝結束時,有時會告訴您使用蠻力查找的路徑(如果沒有),請執行以下操作:

cd /
find . -name 'mysql.so'

所以在php.ini中,而不是

extension=mysql.so

extension=/path/to/found/mysql.so

祝好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM