【发布时间】:2014-12-18 06:56:57
【问题描述】:
我正在尝试在我的注册和登录页面上使用 PDO,并开始在我的注册页面上工作,但出现语法错误,不知道为什么。
错误如下:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“INSERT INTO users (id, name, username, password, lastname ,email) VALUES (?, ?,' 附近使用正确的语法
代码:
if ($_SESSION["username"]){
header("Location: home.php");
}
else{
if(isset($_POST['firstname']) && isset($_POST['lastname']) && isset($_POST['username']) && isset($_POST['password']) && isset($_POST['cpassword']) && isset($_POST['email'])){
require('connect.php');
$dusername = mysql_real_escape_string($_POST["username"]);
$dfirstname = mysql_real_escape_string($_POST["firstname"]);
$dpassword = md5(mysql_real_escape_string($_POST["password"]));
$dlastname =mysql_real_escape_string($_POST["lastname"]);
$demail =mysql_real_escape_string($_POST["email"]);
$dbhost = "xxxxxxx";
$dbname= "xxxxxx";
$dbuser = "xxxx";
$mysql_password = "xxxxx";
try{
$db = new PDO('mysql:host='.$dbhost.';dbname='.$dbname.';charset=utf8',
''.$dbuser.'',
''.$mysql_password.'');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e){
echo $e->getMessage();
die();
}
mysql_error();
//According to user's input
$register =mysql_query( "(INSERT INTO users (id, name, username, password, lastname,email) VALUES (?, ?, ?, ?, ?)")or die(mysql_error());
$register =$db->prepare($register);
$register->execute(array($dfirstname,$dusername,$dpassword,$dlastname,$demail));
// Check username and password match
if ($register) {
// Set username session variable
$_SESSION['username'] = $_POST['username'];
// Jump to secured page
header('Location: home.php');
exit;
}
else{
echo "<div class=\"error\">Error Signing Up... Make Sure all the require
fields are correctly formatted. </div>";
}
}
else{
}
}
更新了
$register ="INSERT INTO users (id, name, username, password, lastname ,email) VALUES('',?, ?, ?, ?, ?)"or die(mysql_error());
$register =$db->prepare($register);
$register->execute(array('',$dfirstname,$dusername,$dpassword,$dlastname,$demail));
还是有错误
【问题讨论】:
-
INSERT INTO, 行是它说错误的地方 -
你不能混用
mysql_*函数和PDO方法,坚持PDO -
请添加错误信息。
-
所以 mysql_query 我不需要它? @鬼
-
@FollowerofChrist 你不需要一点点,所有这些都可以用 PDO 完成