SQL 或者不返回所有行
SQL OR not returning all rows
我遇到了可能是最愚蠢的问题。
我正在使用 phpmyadmin,当我使用 OR
查询 table 时,它不会 return 所有值。
这是未 returning 所有值的查询:
SELECT * FROM ecrdatabase.ecrtable m WHERE m.ecrChangeOwner = '$partialOwner' OR m.ecrInitByName = '$partialOwner'
.
这里,$partialOwner
是从 $_GET['user']
.
传递过来的
有些行是 returned - 但不是全部。我有一个查询数据库的 php 页面,我尝试通过 phpmyadmin 使用查询直接在数据库上 运行 查询:
SELECT * FROM ecrtable WHERE ecrChangeOwner = 'ecunningham' OR ecrInitByName = 'ecunningham'
.
直接查询的结果和 php 页面 return 相同的行数。
我也试过:
SELECT * FROM ecrtable WHERE (ecrChangeOwner = 'ecunningham' OR ecrInitByName = 'ecunningham')
.
我错过了什么?我有更复杂的查询 运行 没问题。请告诉我我只是错过了一些愚蠢的东西...
你真的首先应该在这里使用准备好的语句。您对注入攻击持开放态度。
其次,你怎么知道这个查询没有return所有的行?你做了什么查询来验证这个是错误的?
如果你 运行 一个工会,你会得到什么:
SELECT * FROM ecrtable WHERE ecrChangeOwner = 'ecunningham'
UNION ALL
SELECT * FROM ecrtable WHERE ecrInitByName = 'ecunningham')
我遇到了可能是最愚蠢的问题。
我正在使用 phpmyadmin,当我使用 OR
查询 table 时,它不会 return 所有值。
这是未 returning 所有值的查询:
SELECT * FROM ecrdatabase.ecrtable m WHERE m.ecrChangeOwner = '$partialOwner' OR m.ecrInitByName = '$partialOwner'
.
这里,$partialOwner
是从 $_GET['user']
.
传递过来的
有些行是 returned - 但不是全部。我有一个查询数据库的 php 页面,我尝试通过 phpmyadmin 使用查询直接在数据库上 运行 查询:
SELECT * FROM ecrtable WHERE ecrChangeOwner = 'ecunningham' OR ecrInitByName = 'ecunningham'
.
直接查询的结果和 php 页面 return 相同的行数。
我也试过:
SELECT * FROM ecrtable WHERE (ecrChangeOwner = 'ecunningham' OR ecrInitByName = 'ecunningham')
.
我错过了什么?我有更复杂的查询 运行 没问题。请告诉我我只是错过了一些愚蠢的东西...
你真的首先应该在这里使用准备好的语句。您对注入攻击持开放态度。
其次,你怎么知道这个查询没有return所有的行?你做了什么查询来验证这个是错误的?
如果你 运行 一个工会,你会得到什么:
SELECT * FROM ecrtable WHERE ecrChangeOwner = 'ecunningham'
UNION ALL
SELECT * FROM ecrtable WHERE ecrInitByName = 'ecunningham')