对Azure SQL查询的MySql查询失败

时间:2014-06-21 22:27:50

标签: php mysql sql sql-server azure

我正在尝试将我的网站移动到Azure,以便在我使用Apache / MySql之前依赖他们的SQL服务器。

我在尝试转换查询时遇到了一些困难,因为它们不再起作用了。

如果我连接到MySql数据库,以下情况有效,但如果我更改了与Azure SQL的连接,则会失败。

  

string(178)“SELECT * FROM schemedb.users WHERE CreatedBy = 20 ORDER BY dateCreation Desc”string(177)“SELECT IdUsr FROM schemedb.userssettings WHERE User = 20 ORDER BY Id Desc”

与Azure SQL服务器的所有连接都是正确的,作为一个更简单的查询,然后才能正常执行。但后来我被困在这里。

php错误控制台说

  

致命错误:在...中的非对象上调用成员函数setFetchMode()

要了解问题所在,我在查询中使用var_dump,看看它们失败的地方,如果我将它们更改为:

  

string(178)“SELECT * FROM schemedb.users ORDER BY dateCreation Desc”string(177)“SELECT IdUsr from schemedb.userssettings Order By Id Desc”

这些查询是有效的,所以我猜问题就是where子句,但我不知道问题是什么。

- 编辑

我做了一些测试,结果发现,如果我手动编写查询,它会按预期工作。

我的意思是上面提到的查询是通过几个php自定义方法构建的,如下所示:

  

。“WHERE”。$ this-> buildWhere()。“ORDER BY”。等

但如果我在那里输入WHERE CreatedBy = 20,那么它就可以了。

我最好的猜测是格式问题,因为在SQL Azure中,查询中的数据类型必须与列中声明的类型相同。

然而,我无法理解什么是错的,因为我的自定义方法正在写值vithout ',因此作为数字,而不是字符串......

0 个答案:

没有答案