0
我试图使用fuelphp生成数据库查询。为什么fuelphp生成不正确的查询
$query = DB::query("SELECT LCASE(:field) FROM :table WHERE :field = :val AND 'id' != :id");
$query->bind('field',$field);
$query->bind('table',$table);
$query->bind('val',$val);
$query->bind('id',$id);
$result = $query->execute();
我的代码返回此MySQL查询:
SELECT LCASE('short_code') FROM 'events' WHERE 'short_code' = 'uvt2015' AND 'id' != '0`
这给了我这个错误
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'events' WHERE 'short_code' = 'uvt2015' AND 'id' != '0'
当我更换身边的列名的单引号我这样的语句,给了我我想要的结果。
SELECT LCASE(`short_code`) FROM `events` WHERE `short_code` = 'uvt2015' AND `id` != '0'
为什么fuelphp使用错误的引号生成查询?我怀疑这可能是与我的fuelphp/php/mysql版本有关的错误。
- PHP版本:5.5.12
- MySQL版本:5.6.17
- FuelPHP版本:1.7.2
所以完整的查询应该是: $查询= DB ::查询(“SELECT LCASE('$ field')FROM'$ table'其中'$ field' =:val AND'id'!=:id“); ? – Fester 2015-03-19 09:28:01
是的,应该是。 – Jens 2015-03-19 09:28:43
啊,是的,确实做到了! – Fester 2015-03-19 09:31:38