查询的代码是:
$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}'");
以后遇到这种错误你打印你的语句出来就知道错哪了
推荐阅读