PDO准备了声明问题

时间:2011-03-11 11:35:51

标签: php pdo prepared-statement

我有一个数据库'books'

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开发我的数据库类。    我的pdo conn字符串是参数: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);

它没有工作。查询没有执行。经过长时间的研究,我尝试使用数据库名称查询表名称,如:SELECT * FROM testing.books WHERE book_id = ? AND author = ?并执行..它正在执行黄油和工作......

现在问题是这是否正在发生?没有pdo的文章提到它也可能发生。 Sumone请告诉我必须使用wid表名???

的数据库名称

1 个答案:

答案 0 :(得分:3)

尝试使用从连接字符串中删除的空格:

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

我似乎很可能在连接时没有被放入“测试”数据库,我猜你的连接字符串中的空格会混淆PDO初始化代码,并让你进入默认数据库