Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么google云vm实例上lamp堆栈中的mysql返回错误的查询结果?_Php_Mysql_Google Cloud Platform_Lamp - Fatal编程技术网

Php 为什么google云vm实例上lamp堆栈中的mysql返回错误的查询结果?

Php 为什么google云vm实例上lamp堆栈中的mysql返回错误的查询结果?,php,mysql,google-cloud-platform,lamp,Php,Mysql,Google Cloud Platform,Lamp,在我的普通主机上,此查询返回正确的结果: $auth_check = $db->raw() ->bind( ":username", "email@gmail.com" ) ->exec( "SELECT * FROM users WHERE userType = 'ADMIN' || userType = 'JUNIOR ADMIN' AND username = :username "

在我的普通主机上,此查询返回正确的结果:

$auth_check = $db->raw()
       ->bind( ":username", "email@gmail.com" )
       ->exec( "SELECT * FROM users WHERE userType = 'ADMIN' || userType = 'JUNIOR ADMIN' 
AND username = :username " )->fetch();
但当我在谷歌云平台计算虚拟机上使用相同的代码时,它给出了奇怪的结果:

用户名|用户类型|名称| DOB

alainatianastewart@gmail.com|管理员|利奥管理员| 1907-01-01


这有什么原因吗?我将LAMP stack与gcp上的一个简单网站一起使用。

我猜
x或y和z
可以解释为
x或(y和z)
,这意味着“要么是管理员,要么是具有此用户名的初级管理员”,而这不是您想要的。你在第一个条件下得到了一个匹配,忽略了其余的条件

这可以通过分组来解决,如
(x或y)和z
,但您真正需要的是:

其中username=:username和userType IN('ADMIN','JUNIOR ADMIN')

我猜
x或y和z
可以解释为
x或(y和z)
,意思是“要么是管理员,要么是具有此用户名的初级管理员”,而这不是您想要的。你在第一个条件下得到了一个匹配,忽略了其余的条件

这可以通过分组来解决,如
(x或y)和z
,但您真正需要的是:

其中username=:username和userType IN('ADMIN','JUNIOR ADMIN')

通常使用
作为
|
表示“字符串连接”,具体取决于服务器设置。在这种情况下,您实际上应该在('ADMIN',…)表单中使用更简单的
userType?通常,他们可以使用ORM函数从
['ADMIN','JUNIOR ADMIN']
中进行选择。通常
用作
|
可以表示“字符串连接”,具体取决于服务器设置。在这种情况下,您实际上应该在('ADMIN',…)
表单中使用更简单的
userType?通常情况下,他们可以使用ORM函数从
['ADMIN','JUNIOR ADMIN']
中进行选择。