thinkphp 3.2 SQLSTATE[HY000]: General error

时间:2022-01-13 07:41:07

问题:代码引用了model类,数据也更新了,但就是会报 SQLSTATE[HY000]: General error 错,代码如下:

$id = $_POST['id'];
$user_id = $_POST['user_id'];
$data['invite_time'] = time();
$data['invite_id'] = $_POST['invite_id'];
$sql = "update fanwe_invite set invite_time=".$data['invite_time'].",invite_id='".$data['invite_id']."' where user_id=".$user_id." and _id=".$id;
$edit = $m->query($sql);

解决:用execute 代替 query

解决原理:调用模型的CURD操作的话,系统会自动判断当前执行的方法的读操作还是写操作,如果你用的是原生SQL,那么需要注意系统的默认规则: 写操作必须用模型的execute方法,读操作必须用模型的query方法,否则会发生主从读写错乱的情况。