0

我已经写了这样的代码:

$password = md5($password);
            mysql_query("INSERT INTO `users` (username,password,email,pnum,hintque,hintans) VALUES('$username','$password','$email','$cnum','$hintque','$hintans')");
            mysql_query("INSERT INTO `personal` (userid,fname,lname,address,dob,country,state,city,poscode) VALUES(LAST_INSERT_ID(),'$fname','$lname','$address','$dob','$country','$state','$city'.'$zip')");
            header("location: ../register.php?feedback=Registration Complete. You May Now Login");

但只有第一个 sql 成功插入数据。第二个失败。我希望两个查询同时触发。

4

4 回答 4

5

第二个查询可能会失败,因为您有语法错误(请参阅最后一个值,.应该是,):

mysql_query("INSERT INTO `personal` (userid,fname,lname,address,dob,country,state,city,poscode) VALUES(LAST_INSERT_ID(),'$fname','$lname','$address','$dob','$country','$state','$city','$zip')");

另外,请避免使用mysql_*. 该系列功能现已弃用,您应该使用更新的功能,例如MySQLiPDO

于 2013-08-20T07:29:08.137 回答
0
mysql_query("INSERT INTO `personal` (userid,fname,lname,
             address,dob,country,
             state,city,poscode) VALUES (LAST_INSERT_ID(),'$fname','$lname',
        '$address','$dob','$country',
        '$state','$city','$zip')"); 

问题 :

'$city'.'$zip''$city','$zip'

注意mysql_*现在不推荐使用函数。尝试使用mysqli

于 2013-08-20T07:28:07.580 回答
0

你也可以试试mysqli_multi_query

于 2013-08-20T07:30:05.480 回答
0

在一个脚本中不可能同时发生两件事。几乎同时是可能的。但通常这并不是真正的目标。相反,看看transactions所有严肃的数据库管理系统都提供的一种构造。它允许您将一系列 sql 语句组合成一个成功或失败的单元。

于 2013-08-20T07:28:42.817 回答