到Azure SQL的PHP PDO连接-无效的对象名称[表]

到Azure SQL的PHP PDO连接-无效的对象名称[表],php,sql-server,azure,pdo,Php,Sql Server,Azure,Pdo,客户端已在Azure云上设置SQL数据库。我试图使用PDO进行连接,但一旦我尝试访问表的数据,就会收到一条错误消息 我的连接代码: try { $db = new PDO('sqlsrv:server=tcp:serverid.database.windows.net,1433;Database=testdb','user','pass'); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } ca

客户端已在Azure云上设置SQL数据库。我试图使用PDO进行连接,但一旦我尝试访问表的数据,就会收到一条错误消息

我的连接代码:

try {
    $db = new PDO('sqlsrv:server=tcp:serverid.database.windows.net,1433;Database=testdb','user','pass');
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (Exception $e) {
    echo "Error " . $e->getMessage();      
}
这工作正常,不会产生错误。我要插入的代码

try {
    $sql = "INSERT INTO tablename (introduction) VALUES (:introduction)";
    $q = $db->prepare($sql);
    $q->execute(array(':introduction'=>'hi'));    
} catch (Exception $e) {
    echo "Error " . $e->getMessage();      
}
我从中得到以下错误

Error SQLSTATE[42S02]: [Microsoft][SQL Server Native Client 11.0][SQL Server]Invalid object name 'tablename'. 

Tablename肯定是一个确实存在的表。我们已经检查了权限,不相信是这样。我被卡住了。PDO对我来说是新的,所以我不知道是否有明显的遗漏???

尝试将表格名设置为以下格式:

dbname.tablename

这不是最好的解决方案,但对我来说确实有效

谢谢!我尝试使用database.dbo.tablename,但出现了相同的错误消息。尽管没有dbo的尝试效果很好。我还有其他错误,但它们与插入空值有关,所以我认为它现在可以工作了!谢谢:)我想这只是dbo在我的情况下。不客气:)谢谢!令人恼火的是,我以前确实尝试过dbname.dbo.table,但在没有dbo的情况下从未尝试过!!真不敢相信事情竟如此简单。。。。。!!干杯:)嗨,丹,请看我之前对答案的编辑。我给的东西和你推荐的一模一样,但对他不起作用。可能是与模式相关的问题?!我通常会把
$db->exec(“使用数据库”)