我有这个问题。我应该使用PDO从数据库(MS SQL Server 2005)中选择数据。我有带函数的用户类。
public function select($sql, $array = array(), $fetchMode = PDO::FETCH_ASSOC)
{
//try... if not catch exception
try{
$sth = $this->DBH_->prepare($sql);
foreach ($array as $key => $value) {
$sth->bindValue("$key", $value);
}
// run the query
$sth->execute();
return $sth->fetchAll($fetchMode);
}
catch(PDOException $e) {
echo "<p class="error_msg">Ошибка. Свяжитесь с программистами.</p>";
file_put_contents('errors.log', date("Y-m-d H:i:s")." - ".$e->getMessage().". File:".$e->getFile().". Line: ".$e->getLine()."n", FILE_APPEND);
exit();
}
}
当我将查询与 WHERE(字符串西里尔文)一起使用时,我没有得到任何结果。
$authArr = $DBH->select(" SELECT
id_tip_tovar
FROM
skladskiy_uchet.dbo.spr_tip_tovar
WHERE
tip_tovar = N'Тип товар 1'");
我该如何解决它?
附言对不起,如果我有语法错误。我的英语不是很好。
谢谢。。。
您必须将 FreeTDS 协议版本设置为高于 4.2,因为 nvarchar 列直到 sql server 2005(或在那里)才被引入,所以它们不能被编码到协议中。 编辑/etc/freetds/freetds.conf
[global]
;tds version = 4.2
tds version = 7.2