2011-03-11 136 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