【问题标题】:Querying SQL Server from PHP从 PHP 查询 SQL Server
【发布时间】:2013-03-12 00:30:39
【问题描述】:

我一直在搜索这个主题,但没有找到任何解决方案;有一个类似的问题,但没有解决:Working with characters with accents in sql query and table name

我正在使用 Modern_Spanish_CI_AS 作为排序规则的 SQL Server 2005 上的数据库。我正在使用 PHP 开发 Web 前端,但遇到了口音问题。

有一个表(比如说“Objetos”),其字段是:ID 名称 Descriptción

由于口音,我无法查询此表。如果我构建我的查询"Select a.ID, a.Name FROM Objetos",它可以完美运行,但如果更改为"Select a.ID, a.Descripción FROM Objetos",它会返回零行。

我无法更改数据库的排序规则,所以我在发送查询之前一直在解码查询$ssql = utf8_decode($ssql);...奇怪,使用此解决方法我可以做到INSERT,但不能SELECT

有什么想法吗?谢谢

【问题讨论】:

  • 如果您想过上幸福的生活,请始终仅使用标准 ascii 字符来定义表和字段。
  • 正如 user247245 所说,如果您在表/列名称中使用除较低的 ansi 字符之外的任何内容,您将遇到麻烦。您应该遵循与任何其他语言相同的规则:实体名称不得包含特殊字符。在此之上。您应该始终对所有数据库和表使用 utf8_general_ci 或它的姐妹之一。此排序规则包含任何和所有特殊字符,可以轻松用于任何编程代码。

标签: php sql-server collation


【解决方案1】:

尝试用“`”字符包围列。如果它不起作用,请尝试删除“a”。列名的前缀。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多