【发布时间】:2020-11-03 03:45:44
【问题描述】:
我对 sql 和 php 还很陌生。
我正在尝试将此表单提交到 mysql 服务器,但我不断收到此错误...我不确定错误在哪里...
错误:插入修饰(地址、品种、城市、电子邮件、名字、 姓氏、NeuteredOrSpayed、宠物名、宠物类型、电话号码、州、邮编) VALUES('123 Main St'、'Chihuahua'、'Los 洛杉矶','blankemail@gmail.com','John','Doe','Yes','Iris','Dog','(555)123-4568','CA','90001') 不正确的整数值:第 1 行的列“NeuteredOrSpayed”为“是”
这是代码:
<?php
$servername = "localhost";
$username = "root";
$password = "pwdpwd";
$dbname = "pet_shop";
$db = new mysqli($servername, $username, $password, $dbname);
if (mysqli_connect_errno()) {
echo 'Could not connect: ' . mysql_error();
} else {
function clean_data($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
$firstname = clean_data($_POST['aptfirstname']);
$lastname = clean_data($_POST['aptlastname']);
$address = clean_data($_POST['aptaddress']);
$city = clean_data($_POST['aptcity']);
$state = clean_data($_POST['aptstate']);
$zip = clean_data($_POST['aptzip']);
$phonenumber = clean_data($_POST['aptphonenumber']);
$email = clean_data($_POST['aptemail']);
$petname = clean_data($_POST['aptpetname']);
$neutered = clean_data($_POST['aptneutered']);
$pettype = clean_data($_POST['aptpettype']);
$breed = clean_data($_POST['aptbreed']);
if ($neutered == "true") {
$neutered = "Yes";
} else {
$neutered = "No";
}
if ($pettype == "Cat") {
$breed = "";
}
$sql = "INSERT INTO grooming (Address, Breed, City, Email, FirstName, LastName, NeuteredOrSpayed, PetName, PetType, PhoneNumber, State, Zip) VALUES ('$address', '$breed', '$city', '$email', '$firstname', '$lastname', '$neutered', '$petname', '$pettype', '$phonenumber', '$state', '$zip')";
if ($db->query($sql) === TRUE) {
echo "success";
} else {
echo "Error: " . $sql . "<br>" . $db->error;
}
$db->close();
}
?>
如果您需要更多关于表单代码的上下文,我也可以发布,这里发布的内容很多
【问题讨论】:
-
您在整数字段中插入
Yes,我不明白错误的哪一部分您无法理解... -
修饰表的架构是什么?根据报错信息,需要使用整数值,而不是True/False的字符串值。
-
另外,你很容易接受 SQL 注入
-
注意:您的
clean_data()根本不会清理数据
标签: php mysql sql insert sql-insert