我按照这里的说明进行了
Accessing Microsoft SQL Server from PHP on Ubuntu using PDO, ODBC and FreeTDS
设置odbc。
然后不知怎的,我得到了它但不完全。如果我使用完整的查询语句,则返回
结果正确,但如果我稍后绑定数据,则没有来自DB端的响应......我只是得到了chrome
“未收到任何数据”页面。
Environment: PHP Version 5.3.2-1 ubuntu4.26
我的代码:
$conn=new PDO("odbc:Driver=FreeTDS; Server=Mssql host; Port=1433;
Database=dbname; UID=userid; PWD=pw");
如果我使用它:
$sql="Select * from customer where email='abc@gmail.com'";
$stmt=$conn->prepare($sql);
$stmt->execute();
$row=$stmt->fetch(PDO::FETCH_ASSOC);
print_r($row);
它正确地从DB中获取数据。
但如果我使用这个
$sql="Select * from customer where email= ? ";
$stmt=$conn->prepare($sql);
$stmt->execute(array('abc@gmail.com'));
$row=$stmt->fetch(PDO::FETCH_ASSOC);
print_r($row);
我通过悲伤的面部图标获得了“没有收到数据”的链接。
我试着抓住这些代码,但是......在这种情况下它没有帮助。
我不知道在odbc设置期间我是否遗漏了某些内容,或者是其他内容。
实际上,我想知道你们使用哪种驱动程序/方式使用 MS SQL DB (2008)和
Linux(ubuntu)环境?我在开始时使用dblib
(并且它可以工作)但是在
阅读更多,我发现PHP并不建议人们使用dblib
,他们认为我们应该使用
odbc
,但它确实不起作用。
答案 0 :(得分:0)
您的连接变量的名称不同:
$conn=new PDO("odbc:Driver=FreeTDS; Server=Mssql host; Port=1433;
Database=dbname; UID=userid; PWD=pw");
然后你有
$stmt=$connNc->prepare($sql);
它们必须相同。