到Azure SQL的PHP PDO连接-无效的对象名称[表]
客户端已在Azure云上设置SQL数据库。我试图使用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
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(“使用数据库”)但是我相信这对Auzure SQL不起作用?