我希望将用户输入的信息发布到同一数据库中的两个不同的表中。但是我的代码似乎不起作用,它只写入我要求它写入的第二个表。为什么不写入第一张表呢?
if ($_POST['entereddetail']) {
$sql = "INSERT INTO firsttable (thedetail, date)
VALUES ('". $_POST['entereddetail'] ."', NOW())";
$sql = "INSERT INTO secondtable (thedetail, code, branch, user, date)
VALUES ('". $_POST['entereddetail'] ."','". $_POST['codedetail'] ."', '', '', NOW())";
if(mysqli_query($conn, $sql)){
echo "Records inserted successfully.";
} else{
echo "ERROR: Could not execute $sql. " . mysqli_error($link);
}
}
我知道我的代码可能会受到SQL注入。我现在只学习基础知识然后处理安全性,因为我只是SQL和数据库的新手。我的分支和用户字段也留空,因为我稍后会处理它们。
答案 0 :(得分:2)
那是因为您正在覆盖$sql
变量。
像这样调整你的代码:
$sql = "INSERT INTO firsttable (thedetail, date)
VALUES ('". $_POST['entereddetail'] ."', NOW());";
$sql .= "INSERT INTO secondtable (thedetail, code, branch, user, date)
VALUES ('". $_POST['entereddetail'] ."','". $_POST['codedetail'] ."', '', '', NOW());";
注意:如果仔细观察,您会在sql-statements中看到;
。 .=
将两个$sql
变量合并为一个包含两个MySQL语句的字符串。
答案 1 :(得分:1)
你唯一执行第二个查询...
if ($_POST['entereddetail']) {
$sql = "INSERT INTO firsttable (thedetail, date)
VALUES ('". $_POST['entereddetail'] ."', NOW())";
if ( mysqli_query($conn, $sql) ) {
$sql = "INSERT INTO secondtable (thedetail, code, branch, user, date)
VALUES ('". $_POST['entereddetail'] ."','". $_POST['codedetail'] ."', '', '', NOW())";
if(mysqli_query($conn, $sql)){
echo "Records inserted successfully.";
} else{
echo "ERROR: Could not execute $sql. " . mysqli_error($link);
}
}
else{
echo "ERROR: Could not execute $sql. " . mysqli_error($link);
}