2011-03-11 102 views
2

我米使用PDO具有數據庫「書」PDO預處理語句問題

book_id  author   title 
    1  O'Brien, Tim  MSXML3: A Comprehensive Guide 
    2  O'Brien, Tim  Microsoft .NET: The Programming Bible 
    3  Kress, Peter  Paradox Lost 
    4  Knorr   Creepy Crawlies 
    5  Thurman, Paula Splish Splash 

餘米發展我的數據庫類。 我PDO康恩串正在參數:obj = new PDO("mysql:host = localhost; dbname = testing",root,'')


最後我的類發送查詢:$query(say)=SELECT * FROM books WHERE book_id = ? AND author = ?

這裏 '?'代表準備好的查詢的參數標記。 當我爲我籌備查詢關鍵詞,比如:$result = obj->prepare($query);

保存book_id和筆者在$ PARAM爲:$param =array(1,Knorr);

現在我執行它想:$result->execute($param);

伊茨不working.Query不執行。經過長期的研究,我試圖查詢表名與像數據庫名稱:SELECT * FROM testing.books WHERE book_id = ? AND author = ?和executed..it正在執行像黃油和工作...

現在的問題爲:y發生這種情況?..沒有提到的文章的PDO它也可能發生。 Sumone請告訴我必須使用數據庫名稱沿wid表名?

+1

失去空格('「mysql:host = localhost; dbname = testing」') – Wrikken 2011-03-11 11:49:39

回答

3

與您的連接字符串剝離的空間嘗試:

obj =new PDO("mysql:host=localhost;dbname=testing",root,'') 

它似乎相當有可能,我認爲你不會被投進上連接了「測試」數據庫,我猜連接字符串中的空格會混淆PDO初始化代碼,並將您留在默認數據庫中。

+0

thnx ..現在工作..我犯了這麼一個愚蠢的錯誤 – 2011-03-11 12:10:08