2011-10-22 89 views
0

這是一個連接的方式在本地主機奇怪的行爲

$Connection = mysql_connect("localhost","root",""); 

創建MySQL服務器,但MySQL的似乎忽略了我的用戶名和密碼,即使我創造了一些廢話用戶名&密碼的連接:

$Connection = mysql_connect("localhost","nonsense-username",""); 

兩種情況給我的$連接爲 「類型(mysql連接)的資源(39)」。這隻發生在密碼爲空時。當密碼爲空時,是否接受任何用戶名是MySQL的默認行爲?

但是,當給出這樣的'nonsense-username'時,它應該有$ Connection等於'false'。哪裏不對了?

回答

2

我打算假設你已經在自己的計算機上設置了MySQL服務器,而沒有配置用戶,權限或類似的東西。如果是這種情況,那麼原因可能是SQL安全模式。如果在你的php.ini文件中,sql.safe_mode設置爲1,那麼PHP將用你的默認值替換你傳遞給mysql_connect()的任何參數。那肯定會解釋這種行爲。試着看看phpinfo()來看看是否是這種情況。

+0

奇怪的是,'php.ini'中的sql.safe_mode是關閉 – jondinham

+1

我的回答沒有解釋你的筆記,這隻發生在密碼爲空時。 AFAIK當密碼爲空時,允許任何連接都不是默認的MySQL行爲。這是否適用於您可以想到的任何*廢話用戶名?怎麼樣一個空的用戶名? – toon81

+0

是的,只要用戶'root'的密碼爲空,mysql就會接受任何字母數字用戶名。 mysql正在讓我瘋狂...... – jondinham

0

似乎你安裝php-mysql後沒有重新啓動網絡服務器。請重新啓動它應該工作的網絡服務器。 我花了兩個小時調試,簡單的解決方案重新啓動