2015-05-19 88 views
0

客户端在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对我来说是新的,所以我不知道是否有什么明显的我错过了?

回答

0

尝试把表名格式为:

dbname.tablename 

不是最好的解决方案,但它确实为我工作。

+0

谢谢!我尝试使用database.dbo.tablename,但具有相同的错误消息。尝试没有dbo工作得很好。我有其他错误,但他们涉及到插入NULL,所以我认为它现在正在工作!谢谢:) –

+0

我想这是dbo就在我的情况。不客气:) –

+0

我更新了答案。 –