如何执行两个查询并排?

问题描述:

我试图执行多个查询一次/或一个接一个,但它是失败的。这是为什么,这里我是如何构建我的代码:如何执行两个查询并排?

$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"); 
+0

你有什么错误信息? – triclosan 2013-03-15 12:25:14

+0

我没有得到任何错误 – 2013-03-15 12:28:04

+0

只是一个黑色的屏幕 – 2013-03-15 12:29:05

你真的应该使用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

+0

即使你的答案真的不回答他的问题 - 这是一个健全的建议,不要使用过时的界面。 – fredrik 2013-03-15 12:31:59

使用可变$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"); 
+0

这应该不会影响查询是否成功 - 只有他保留有关以前查询的任何可用信息。 – fredrik 2013-03-15 12:30:46

正在尝试中,我猜是AUTO_INCREMENT列字段中插入'NULL'。 你应该从查询中忽略它们:

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

即使空应该在那里,根据表的实现/定义,他们不应该在'封闭的,这意味着该字符串NULL,而不是值。