0

我正在尝试一次/或一个接一个地执行多个查询,但它失败了。为什么会这样,这是我构建代码的方式:

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

3 回答 3

0

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

否则,你的错误是什么?

请不要mysql_*在新代码中使用函数。它们不再被维护并被正式弃用。看到红框了吗?改为了解准备好的语句,并使用PDOMySQLi -本文将帮助您决定使用哪个。如果您选择 PDO,这里有一个很好的教程

于 2013-03-15T12:25:53.753 回答
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");
于 2013-03-15T12:29:34.923 回答
0

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

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

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

于 2013-03-15T12:29:42.973 回答