mysql-php中使用PDO查询数据库出错
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql-php中使用PDO查询数据库出错,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2396字,纯文字阅读大概需要4分钟。
内容图文
查询的代码是:$email=htmlspecialchars($_POST["email"]);
if($sql->getData('SELECT * FROM user WHERE email='.$email)==NULL){
getData的代码是:
public function getData($sql,$type=1){
$data=Array();
$db=$this->db();
$result=$db->query($sql);
$sth = $db->prepare($sql);
$sth->execute();
if(is_bool($result))
return $result;
if($type==1)
while($a = $sth->fetch(PDO::FETCH_ASSOC))
$data[]=$a;
elseif($type==2)
while($a = $sth->fetch(PDO::FETCH_BOTH))
$data[]=$a;
if($data)
return $data;
else
return NULL;
}
错误提示是:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 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 '@gmail.com' at line 1' in D:\phpStudy\WWW\core\mysql\drivers\PDO.php:61 Stack trace: #0 D:\phpStudy\WWW\core\mysql\drivers\PDO.php(61): PDO->query('SELECT * FROM u...') #1 D:\phpStudy\WWW\core\login.php(105): DB_PDO->getData('SELECT * FROM u...') #2 {main} thrown in D:\phpStudy\WWW\core\mysql\drivers\PDO.php on line 61
回复内容:
查询的代码是:
$email=htmlspecialchars($_POST["email"]);
if($sql->getData('SELECT * FROM user WHERE email='.$email)==NULL){
getData的代码是:
public function getData($sql,$type=1){
$data=Array();
$db=$this->db();
$result=$db->query($sql);
$sth = $db->prepare($sql);
$sth->execute();
if(is_bool($result))
return $result;
if($type==1)
while($a = $sth->fetch(PDO::FETCH_ASSOC))
$data[]=$a;
elseif($type==2)
while($a = $sth->fetch(PDO::FETCH_BOTH))
$data[]=$a;
if($data)
return $data;
else
return NULL;
}
错误提示是:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 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 '@gmail.com' at line 1' in D:\phpStudy\WWW\core\mysql\drivers\PDO.php:61 Stack trace: #0 D:\phpStudy\WWW\core\mysql\drivers\PDO.php(61): PDO->query('SELECT * FROM u...') #1 D:\phpStudy\WWW\core\login.php(105): DB_PDO->getData('SELECT * FROM u...') #2 {main} thrown in D:\phpStudy\WWW\core\mysql\drivers\PDO.php on line 61
你需要把email
地址引起来
getData('SELECT * FROM user WHERE email="'.$email.'"')==NULL){
这个是你的 SQL 语句语法错误,字符串要用引号括起来:
$pdo->getData("SELECT * FROM `table` WHERE `email` = '{$email}'");
以后遇到这种错误你打印你的语句出来就知道错哪了
内容总结
以上是互联网集市为您收集整理的mysql-php中使用PDO查询数据库出错全部内容,希望文章能够帮你解决mysql-php中使用PDO查询数据库出错所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。