我还在学习PDO,所以我可能会错过一些东西,但基本上我是想在一个表中插入一行,然后选择生成的id.
我不确定它是否同意一个pdo语句中的查询.这是我用来执行sql的代码.
public function ExecuteQuery($sql, $params = array())
{
if($this->_handle == null)
$this->Connect();
$query = $this->_handle->prepare($sql);
foreach($params as $key => $value)
{
if(is_int($value)){
$query->bindValue(':'.$key, $value, \PDO::ParaM_INT);
}else if(is_bool($value)){
$query->bindValue(':'.$key, $value, \PDO::ParaM_BOOL);
}else if(is_null($value)){
$query->bindValue(':'.$key, $value, \PDO::ParaM_NULL);
}else{
$query->bindValue(':'.$key, $value, \PDO::ParaM_STR);
}
}
$query->execute();
$x = $query->fetchAll(\PDO::FETCH_ASSOC);
var_dump($x);
return $x;
}
此函数是数据库类的一部分,$this-> _handle是PDO对象.
public function Connect()
{
try {
$this->_handle = new \PDO('MysqL:host='.$this->_host.';dbname='.$this->_database, $this->_username, $this->_password);
$this->_handle->setAttribute( \PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION );
}
catch(PDOException $e) {
echo $e->getMessage();
}
}
我正在运行的sql是这样的:
INSERT INTO `users` (`Username`, `Password`, `PasswordSalt`, `Email`, `IsAdmin`, `LoginAttempts`, `LastLogin`, `LastLoginAttempt`, `Created`) VALUES (:username, :password, :passwordsalt, :email, :isadmin, :loginattempts, :lastlogin, :lastloginattempt, :created); SELECT LAST_INSERT_ID() as 'id'
任何人都可以看到我做错了什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。