我对sql和php很陌生。
我试图提交这个表格到mysql服务器,但我不断得到这个错误…我不知道哪里的错误是。。。
错误:将值('123 main st','chihuahua','los angeles','blankemail@gmail.com“,”john“,”doe“,”yes“,”iris“,”dog“,”(555)123-4568“,”ca“,”90001“)整数值不正确:第1行“neuterdorspayed”列的“yes”
代码如下:
<?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();
}
?>
如果你需要更多的上下文到表单代码,我也可以发布,只是在这里发布了很多
2条答案
按热度按时间vc9ivgsu1#
这是一个简单的数据类型错误,数据库中名为neuted的列的数据类型为
Integer
你要插入的值是“是”,这绝对不是integer
.尝试将整数1和0分别作为yes和no。
8e2ybdfx2#
很清楚。。正如@berto99和@pete等人提到的。。
列“neuturedorspayed”的数据类型是int,因此在代码中应该是这样的