【问题标题】:I keep getting this same error when i try to submit an appointment request to sql当我尝试向 sql 提交约会请求时,我不断收到同样的错误
【发布时间】: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();
}


?>

如果您需要更多关于表单代码的上下文,我也可以发布,这里发布的内容很多

【问题讨论】:

标签: php mysql sql insert sql-insert


【解决方案1】:

这是一个简单的数据类型错误,您在数据库中名为 neutered 的列的数据类型为 Integer,而您尝试插入的值是“是”,这绝对不是 integer

尝试将整数 1 和 0 分别表示是和否。

【讨论】:

    【解决方案2】:

    很清楚......正如@Berto99 和@Pete 以及其他人提到的......

    列 'NeuturedOrSpayed' 数据类型是 INT,所以在您的代码中应该是这样的

    if ($neutered == "true") {
        $neutered = 1; # it was 'Yes' --> string, need to be int, so 1
    } else {
        $neutered = 0; # it was 'No' --> string, need to be int, so 0
    }
    

    【讨论】:

    • 我是个白痴,没看懂,谢谢大家
    • 缺少某些东西是正常的,因为您是 php 和 sql 的新手。不尝试查看错误信息是不正常的。 *希望你不是第二个 ;)
    猜你喜欢
    • 2023-03-14
    • 2016-05-05
    • 1970-01-01
    • 2019-05-15
    • 1970-01-01
    • 1970-01-01
    • 2021-02-08
    • 2014-05-03
    • 1970-01-01
    相关资源
    最近更新 更多