从 PHP 查询 SQL Server
Posted
技术标签:
【中文标题】从 PHP 查询 SQL Server【英文标题】:Querying SQL Server from PHP 【发布时间】: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 或它的姐妹之一。此排序规则包含任何和所有特殊字符,可以轻松用于任何编程代码。 【参考方案1】:尝试用“`”字符包围列。如果它不起作用,请尝试删除“a”。列名的前缀。
【讨论】:
以上是关于从 PHP 查询 SQL Server的主要内容,如果未能解决你的问题,请参考以下文章
如何将查询从 phpMyAdmin SQL Dump 转换为 sql server 易读查询