PHP PDO连接到Azure SQL - 无效的对象名称[table]
问题描述:
客户端在Azure云上设置了SQL数据库。我尝试使用PDO进行连接,但只要我尝试访问表格的数据,就会收到一条错误消息。PHP PDO连接到Azure SQL - 无效的对象名称[table]
我的代码连接:
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工作得很好。我有其他错误,但他们涉及到插入NULL,所以我认为它现在正在工作!谢谢:) –
我想这是dbo就在我的情况。不客气:) –
我更新了答案。 –