2014-02-25 118 views
-1

我可以連接到MySQL使用mysql_*函數具有相同的憑據。PDO連接到本地主機(未知的mysql服務器主機)

有沒有辦法連接到使用PDO與只有USAGE權限的用戶本地MySQL數據庫?我沒有機會將權利設置爲ALL,我已將其閱讀爲SO中類似問題的解決方案。

SQLSTATE[HY000] [2005] Unknown MySQL server host 'localhost,dbname=crmdb' (74)

+0

我建議你不要使用PDO,你可用MySQLi接口在PHP它具有客觀支持或'mysqli_ *'支持,我不認爲它有你看到的錯誤http://uk1.php.net/mysqli –

+1

沒有?我不會修改數千行。使用PDO,我將結果作爲自定義類的對象提取,您可以在MySQLi中執行此操作? –

+0

成千上萬的線你沒有建立一個班級來管理你嗎?如果是這種情況,我會說我們需要更多的信息,你可以向我們展示你的一個調用,以及它在將它發送到服務器之前構建的SQL,但是我不認爲你可以在PDO上繞過這個錯誤php –

回答

3
// PDO 
$pdo = new PDO("mysql:host=localhost;dbname=database", 'username', 'password'); 

注意分號;不是逗號,

+0

哇!我無語了。問題是,我測試了本地web服務器上的腳本,它接受'$ dbh = new PDO(「mysql:host = 127.0.0.1:3306,dbname = test」,'root','');'與COMMA。可能因爲沒有設置密碼。 –

+0

這就是我的意思,我們需要你的代碼,只是我能夠表示的錯誤信息,但是我支持我在使用多種數據庫類型時只使用PDO,因爲它對於簡單類型來說非常大且複雜,並且是命名參數是一件好事,但它確實很容易實現,並且您可以更好地實現相同名稱空間的多種用法,函數prepareSQL($ sql,$ data){foreach($ data as $ key => $ val){$ sql = str_replace(「:」。$ key,$ val,1); }返回$ sql;}'哦,這支持對象或值的數組:) –

+0

我會擔心你的測試服務器那裏是不正確的。並且不應該像PDO一樣從中建立一種ODBC連接。 EG「mysql:host = 127.0.0.1:3306; dbname = test; user = test」或者是否有密碼「mysql:host = 127.0.0.1:3306; dbname = test; user = test; password = pass」 –

相關問題