【发布时间】:2026-02-16 12:25:01
【问题描述】:
我正在尝试从一个表单一次插入 2 个表格。
表 #1=bath_orders
表 #2= 客户
我显然正在尝试同时建立一个电子邮件列表。
PHP 跳过第一个 INSERT INTO 命令并跳转到第二个并继续执行页面上的其余代码。
每次执行时,我都会在错误日志文件中发现以下几个错误:
PHP注意:未定义变量:上线
我搜索了该主题,发现大多数情况下人们都错误地尝试了
$sql = "INSERT INTO bath_orders, customers ...."
但在我的代码中并非如此。
我的代码如下:
<?php
$servername = "localhost";
$username = "my_user_name";
$password = "my_password";
$dbname = "my_database";
// connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
if(isset($_POST['submit'])){
$fname = mysqli_real_escape_string($conn, $_POST['fname']);
$lname = mysqli_real_escape_string($conn, $_POST['lname']);
$email = mysqli_real_escape_string($conn, $_POST['email']);
$phone = mysqli_real_escape_string($conn, $_POST['phone']);
$custaddress = mysqli_real_escape_string($conn, $_POST['custaddress']);
$city = mysqli_real_escape_string($conn, $_POST['city']);
$state = mysqli_real_escape_string($conn, $_POST['state']);
$zip = mysqli_real_escape_string($conn, $_POST['zip']);
$pic1 = mysqli_real_escape_string($conn, $_POST['pic1']);
$pic2 = mysqli_real_escape_string($conn, $_POST['pic2']);
$pic3 = mysqli_real_escape_string($conn, $_POST['pic3']);
$startdate = mysqli_real_escape_string($conn, $_POST['startdate']);
$walltiledemo = mysqli_real_escape_string($conn, $_POST['walltiledemo']);
$walltile = mysqli_real_escape_string($conn, $_POST['walltile']);
$otherwalltile = mysqli_real_escape_string($conn, $_POST['otherwalltile']);
$otherwalltileh = mysqli_real_escape_string($conn, $_POST['otherwalltileh']);
$otherwalltilew = mysqli_real_escape_string($conn, $_POST['otherwalltilew']);
$walltileinst = mysqli_real_escape_string($conn, $_POST['walltileinst']);
$pandemo = mysqli_real_escape_string($conn, $_POST['pandemo']);
$paninst = mysqli_real_escape_string($conn, $_POST['paninst']);
$flrtileinst = mysqli_real_escape_string($conn, $_POST['flrtileinst']);
$flrtile = mysqli_real_escape_string($conn, $_POST['flrtile']);
$otherflrtile = mysqli_real_escape_string($conn, $_POST['otherflrtile']);
$tub = mysqli_real_escape_string($conn, $_POST['tub']);
$newtub = mysqli_real_escape_string($conn, $_POST['newtub']);
$othertub = mysqli_real_escape_string($conn, $_POST['othertub']);
$door = mysqli_real_escape_string($conn, $_POST['door']);
$newdoor = mysqli_real_escape_string($conn, $_POST['newdoor']);
$otherdoor = mysqli_real_escape_string($conn, $_POST['otherdoor']);
$floortiledemo = mysqli_real_escape_string($conn, $_POST['floortiledemo']);
$floortileinst = mysqli_real_escape_string($conn, $_POST['floortileinst']);
$floortile = mysqli_real_escape_string($conn, $_POST['floortile']);
$otherfloortile = mysqli_real_escape_string($conn, $_POST['otherfloortile']);
$otherfloortileh = mysqli_real_escape_string($conn, $_POST['otherfloortileh']);
$otherfloortilew = mysqli_real_escape_string($conn, $_POST['otherfloortilew']);
$vanity = mysqli_real_escape_string($conn, $_POST['vanity']);
$newvanity = mysqli_real_escape_string($conn, $_POST['newvanity']);
$othervanity = mysqli_real_escape_string($conn, $_POST['othervanity']);
$sql = "INSERT INTO bath_orders (firstname, lastname, email, phone , custaddress , city , state , zip , pic1 , pic2 , pic3 , startdate , walltiledemo , walltile , otherwalltile , otherwalltileh , otherwalltilew , walltileinst , pandemo , paninst , flrtileinst , flrtile , otherflrtile , tub , newtub , othertub , door , newdoor , otherdoor , floortiledemo , floortileinst , floortile , otherfloortile , otherfloortileh , otherfloortilew , vanity , newvanity , othervanity)
VALUES ('$fname', '$lname', '$email', '$phone', '$custaddress' , '$city' , '$state' , '$zip' , '$pic1' , '$pic2' , '$pic3' , '$startdate' , '$walltiledemo' , '$walltile' , '$otherwalltile' , '$otherwalltileh' , '$otherwalltilew' , '$walltileinst' , '$pandemo' , '$paninst' , '$flrtileinst' , '$flrtile' , '$otherflrtile' , '$tub' , '$newtub' , '$othertub' , '$door' , '$newdoor' , '$otherdoor' , '$floortiledemo' , '$floortileinst' , '$floortile' , '$otherfloortile' , '$otherfloortileh' , '$otherfloortilew' , '$vanity' , '$newvanity' , '$othervanity' )";
$sql = "INSERT INTO customers (fname, lname, email, phone , custaddress , city , state , zip , comments )
VALUES ('$fname', '$lname', '$email', '$phone', '$custaddress' , '$city' , '$state' , '$zip' , '$comments')";
我已经研究过这个主题但是..我不明白我做错了什么。
它说要执行 2 个单独的 INSERT INTO 语句,我认为这就是我正在做的事情。
有人可以帮我理解 2 个单独的语句应该是什么样子。
TYIA
这是一个小提琴的链接
【问题讨论】:
-
我想我已经发现我得到的 PHP 错误是由于在提交时没有在表单中的这些字段中输入任何值。如果有人选择不输入值,我该如何避免这些错误?
-
"PHP 注意:未定义变量:在线" 哪个变量,在哪一行?它有没有提到这一点?