我有一个数据库'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表名???
的数据库名称答案 0 :(得分:3)
尝试使用从连接字符串中删除的空格:
obj =new PDO("mysql:host=localhost;dbname=testing",root,'')
我似乎很可能在连接时没有被放入“测试”数据库,我猜你的连接字符串中的空格会混淆PDO初始化代码,并让你进入默认数据库