我有可能是最愚蠢的问题
我正在使用phpmyadmin,当我使用OR
查询表时,它不会返回所有值
这是不返回所有值的查询:
SELECT * FROM ecrdatabase.ecrtable m WHERE m.ecrChangeOwner = '$partialOwner' OR m.ecrInitByName = '$partialOwner'
。
在此处,$partialOwner
从$_GET['user']
传递
返回一些行 - 只是不是全部。我有一个查询数据库的php页面,我尝试使用查询通过phpmyadmin直接在数据库上运行查询:
SELECT * FROM ecrtable WHERE ecrChangeOwner = 'ecunningham' OR ecrInitByName = 'ecunningham'
。
直接查询和php页面的结果都返回相同的行数
我也尝试过:
SELECT * FROM ecrtable WHERE (ecrChangeOwner = 'ecunningham' OR ecrInitByName = 'ecunningham')
。
我错过了什么?我有更复杂的查询运行正常。请告诉我,我只是错过了一些愚蠢的事......
答案 0 :(得分:1)
你真的应该在这里使用预备语句,首先。你对注射攻击持开放态度。
其次,您如何知道此查询不会返回所有行?你做了什么查询来验证这个是错的?
如果你经营一个工会,你会得到什么:
SELECT * FROM ecrtable WHERE ecrChangeOwner = 'ecunningham'
UNION ALL
SELECT * FROM ecrtable WHERE ecrInitByName = 'ecunningham')