【发布时间】:2016-08-20 08:45:40
【问题描述】:
这是我在 StackOverFlow 中的第一个问题
MyEnvironment 我的环境 Centos7 Yii2.0.9 PHP7.0.9 MSsql 使用 PDODBLib 和 FreeTDS 连接正常 表显示正常(Where 子句没有) 我认为 PHP7 没问题 但是如果Where子句存在则不起作用
调试/日志选项卡显示如下:
SELECT COUNT(*) FROM [pw26] WHERE ([w26_kind]=7) AND ([w26_title] LIKE 0x25ed8c9c25)
PHP 5.6 之前显示如下:
SELECT COUNT(*) FROM [pw26] WHERE ([w26_kind]=7) AND ([w26_title] LIKE '%팜%')
只出现在非英语单词中
我找到了这个 Yii2/db/Schema.php
public function quoteValue($str)
{
if (!is_string($str)) {
return $str;
}
if (($value = $this->db->getSlavePdo()->quote($str)) !== false) {
return $value;
} else {
// the driver doesn't support quote (e.g. oci)
return "'" . addcslashes(str_replace("'", "''", $str), "\000\n\r\\\032") . "'";
}
}
顶部代码更改如下
if (($value = $this->db->getSlavePdo()->quote($str)) !== false) {
后:
if (false) {
最后调试/日志选项卡显示如下:
SELECT COUNT(*) FROM [pw26] WHERE ([w26_kind]=7) AND ([w26_title] LIKE '%팜%')
但是,仍然没有出现数据。
【问题讨论】:
-
阅读您的问题后,很难确定您的问题。请具体说明您的问题是什么?你想做什么?
-
我想使用 php7 但我没有,因为非英文引用错误
标签: php sql-server yii2