我正在尝试从PHP连接Microsoft Server。目前PHP 5.5.9在Ubuntu 14.04上
在我将服务器升级到16.04和PHP 7之前,一切都进行得很好,因为在unicode字符串前面加上'N‘字符的更新停止了工作。当我从准备好的语句中删除‘N’时,它开始正常工作,而不是一件事:当我用俄语符号插入或更新时,它们被存储为中文。
我明天尝试了很多不同的事情来解决这个问题。最后,我决定回Ubuntu14.04。但令我惊讶的是我也得到了同样的效果。
以下是我的连接字符串:
$connection = new PDO ("dblib:version=7.0;charset=UTF-8;host=".AZURE_SQL_HOST.":".AZURE_SQL_PORT.";dbname=".AZURE_SQL_DB, AZURE_SQL_USER, AZURE_SQL_PASS);我不知道我该提供什么信息。有人能指点我吗?
提前感谢!
更新:,我不知道到底发生了什么,但不知何故,我开始接受问号。中国的焦炭问题似乎只与php7有关。
现在我无法摆脱这个问号。
发布于 2016-12-27 15:02:07
最终解决了所有的问题:
这样就行了:
$statement = $pdo->prepare("SELECT * FROM some_table WHERE some_field=?");
$statement->execute(['SOME_UNICODE_CHARS']);而这并不是:
$statement = $pdo->prepare("SELECT * FROM some_table WHERE some_field=:field");
$statement->execute([':field' => 'SOME_UNICODE_CHARS']);希望这能节省一些时间..。
https://stackoverflow.com/questions/41344622
复制相似问题