【问题标题】:Request MS SQL table with diaeresis in name from PHP从 PHP 请求名称为分音符号的 MS SQL 表
【发布时间】:2017-02-23 16:52:19
【问题描述】:

我们需要从表名中带有分音符号的客户端从 MS SQL 服务器检索数据(这是不好的做法)。 表名是BE België$Cities,我们不允许更改表名。请求SELECT * FROM [BE België$Cities]返回一个table not found错误。

我们如何从这个表中检索数据? 我们使用的是 SQL Server 2008、PHP7 和 Laravel 5.3。

【问题讨论】:

  • 您是否尝试过在表名中使用反勾号??访问此链接:stackoverflow.com/a/10443100/4952944
  • 亲爱的 Gerard,我在 ssms 中使用 :SELECT * FROM dbo.België$Cities 通过 SSMS 在 SQL SERVER 2012 上检索数据没有问题。这可能与 sql server 和 PHP 之间的排序规则问题有关。
  • 服务器是SQL SERVER 2008。

标签: php sql sql-server laravel


【解决方案1】:

也经常遇到这个问题,所以我给自己定了一条规则,在表名上始终使用反引号 (`),这应该可以解决您的问题。

你的情况

SELECT * FROM `België$Cities`;

应该可以。

【讨论】:

  • 在使用方括号的 SQL SERVER 中不使用反引号。见:stackoverflow.com/questions/10573922/…
  • 用反引号替换方括号不起作用。我还添加了名称还包含空格的问题。不确定这是否重要。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-02
  • 2017-11-29
  • 1970-01-01
  • 1970-01-01
  • 2015-11-29
  • 1970-01-01
  • 2023-03-27
相关资源
最近更新 更多