从 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 易读查询

查询在 SQL Server 上运行,但不使用 PHP

在 php 中运行多个 SQL Server 查询

使用 PDO 驱动程序 PHP 在 sql-server 查询中循环

帮助从 SQL Server 读取二进制图像数据到 PHP

SQL Server:从查询返回的动态列