gpt4 book ai didi

php - php插入mysql时出错

转载 作者:行者123 更新时间:2023-11-29 19:45:11 25 4
gpt4 key购买 nike

我正在尝试插入数据库,它给了我这个:

Error inserting You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 3 something wrong in Database

public function set_Animal($Name,$Gender,$Allergie,$Age,$Weight,$Type_ID,$Owner_ID,$Colour){
$Animal_Query= "INSERT INTO animal (Name,Gender,Allergie,Age,Weight,Type_ID,Owner_ID,Colour)
VALUES ($Name,$Gender,$Allergie,$Age,$Weight,$Type_ID,$Owner_ID,$Colour)";
if(mysqli_query($this->conn,$Animal_Query)) {
return true ;
}
else {
echo "Error inserting ".mysqli_error($this->conn);
return false ;
}
}

最佳答案

为了使您的代码正常工作,您必须将具有字符数据类型的列用单引号引起来。然而,这有SQL注入(inject)的嫌疑。请改用准备好的语句。

假设除了年龄和体重之外所有列都是字符:

编辑:添加了检查$conn->prepare是否成功。

public function set_Animal ($Name,$Gender,$Allergie,$Age,$Weight,$Type_ID,$Owner_ID,$Colour){

$Animal_Query = "INSERT INTO animal (Name,Gender,Allergie,Age,Weight,Type_ID,Owner_ID,Colour) VALUES (?,?,?,?,?,?,?,?)";

if($stmt = $conn->prepare($Animal_Query)){
$stmt->bind_param("sssiisss", $Name, $Gender, $Allergie,$Age,$Weight,$Type_ID,$Owner_ID,$Colour);

if($stmt->execute())
return true;
else
return false;

} else {
printf("Errormessage: %s\n", $mysqli->error);
}
$stmt->close();
}

函数bind_param将参数绑定(bind)到SQL查询。 “sssiisss”参数列出了参数的数据类型。 s 字符告诉 mysql 该参数是一个字符串,而 i 告诉它它是一个数字。

参数可以是以下四种类型之一:

i:整数

d:双

s:字符串

b:BLOB

我们应该为每个参数设置其中一个。

关于php - php插入mysql时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41065174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com