tp5 mysql Db:query问题

Invalid parameter number

和许多网友遇到的问题一样,sql放在数据库执行就可以,但是拉到代码里,用Db:query(sql,param)这个方法就出问题。

每个参数调试过以后,发现是由于有两个参数,每个参数有用到两次,导致了冲突。修改参数以后,重复赋值,问题解决。

    LEFT JOIN ( SELECT * FROM `order` WHERE MONTH ( create_time ) = :m AND YEAR ( create_time ) = :y ) o ON t.id = o.tableID
    LEFT JOIN ( SELECT * FROM `order` WHERE MONTH ( create_time ) = :m AND YEAR ( create_time ) = :y AND state = :s ) ro ON t.id = ro.tableID

就是这个代码里的:m和:y用了两次导致的问题。

    LEFT JOIN ( SELECT * FROM `order` WHERE MONTH ( create_time ) = :m1 AND YEAR ( create_time ) = :y1 ) o ON t.id = o.tableID
    LEFT JOIN ( SELECT * FROM `order` WHERE MONTH ( create_time ) = :m2 AND YEAR ( create_time ) = :y2 AND state = :s ) ro ON t.id = ro.tableID

修改参数后,问题解决

猜你喜欢

转载自www.cnblogs.com/xiaotianblog/p/11248927.html