如何同时执行两个查询?

时间:2013-03-15 12:23:14

标签: mysql

我试图一次/或一个接一个地执行多个查询,但它失败了。为什么会这样,这就是我如何构建我的代码:

$query="
INSERT INTO ptb_users (user_id,
id,
first_name,
last_name,
email )
VALUES('NULL',
'NULL',
'".$firstname."',
'".$lastname."',
'".$email."'
)";
mysql_query($query) or die();
$result = mysql_query("UPDATE ptb_users SET user_id=id");

$query="INSERT INTO ptb_profiles (id,
user_id,
display_name )
VALUES('NULL',
'NULL',
'".$username."'
)";
mysql_query($query) or die();
$result = mysql_query("UPDATE ptb_profiles SET id=user_id");

3 个答案:

答案 0 :(得分:0)

您应该使用PDO和预处理语句,不再支持mysql_ *。它会让你的生活更轻松,尤其是重复陈述。

否则,你的错误是什么?

Please, don't use mysql_* functions in new code。它们不再被维护and are officially deprecated。请参阅red box?转而了解prepared statements,并使用PDOMySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial

答案 1 :(得分:0)

为变量$query$result

使用不同的名称

应该是

$query="INSERT INTO ptb_users (user_id,id,first_name,last_name,email )VALUES('NULL','NULL','".$firstname."','".$lastname."','".$email."')";
$result = mysql_query($query) or die();
$result1 = mysql_query("UPDATE ptb_users SET user_id=id");

$query2="INSERT INTO ptb_profiles (id,user_id,display_name )VALUES('NULL','NULL','".$username."')";
$result2 = mysql_query($query2) or die();
$result3 = mysql_query("UPDATE ptb_profiles SET id=user_id");

答案 2 :(得分:0)

您正在尝试在我猜测为auto_increment列的字段中插入'NULL'。 您应该从查询中省略它们:

$query = "INSERT INTO ptb_users (first_name, last_name, email )
            VALUES('".$firstname."', '".$lastname."', '".$email."')";

即使null应该存在,根据你的表的实现/定义,它们不应该包含在'中,因为这意味着字符串为NULL,而不是值。