在ThinkPHP的query函数想数据库中插入函数的时候如下面的代码
public function GetToMysql($user,$password,$emile){ $password = $this->encryptPwd($password); $query = "insert into user (username,password,email) values ('{$user}','{$password}','{$emile}')"; $data = new \Think\Model();
$data->query($query);
}这段代码运行起来是可以成功的插入到数据库中,但是会报错
原因是因为execute方法和query方法是有区别的
ThinkPHP中execute()和query()方法都可以在参数里直接输入SQL语句。
不同的是execute()通常用来执行insert或update等SQL语句,而query常用来执行select等语句。
execute()方法将返回影响的记录数,如果执行SQL的select语句的话,返回的结果将是表的总记录数:
$model
= M(
"MyTable"
);
$result
=
$model
->execute(
'select * from MyTable'
);
//将返回总行数
query()方法将返回数据集:
$model
= M(
"MyTable"
);
$result
=
$model
->query(
'select * from MyTable'
);
//将返回array()
所以上面的代码最后一句改成
$data->execute($query);
就可以完美运行了