Php 将行插入mysql表失败
我曾尝试编写代码,根据SELECT查询将字段插入数据库 以下是我的Php 将行插入mysql表失败,php,mysql,Php,Mysql,我曾尝试编写代码,根据SELECT查询将字段插入数据库 以下是我的选择代码 <?php $sql = ("select * from category"); $result = $con->query($sql); if($result->num_rows > 0){ while($row = $result->fetch_assoc()){ $cat_id=$row['cat_id'];
选择代码
<?php
$sql = ("select * from category");
$result = $con->query($sql);
if($result->num_rows > 0){
while($row = $result->fetch_assoc()){
$cat_id=$row['cat_id'];
$cat_title=$row['cat_title'];
echo "<option value=".$cat_id." >".$cat_title."</option>";
}
}
?>
这是我的插入脚本
$title = validateInput($_POST['title']);
$desc1 = validateInput($_POST['desc1']);
//$content = validateInput($_POST['content']);
$cat_title = validateInput($_POST['cat_title']);
$cat_id = validateInput($_POST['cat_id']);
$stmt = $con->prepare("INSERT INTO products (title,desc1,cat_title, img, img1,img2,img3,zip,user_id,cat_id) VALUES (?, ?, ?, ?,?,?,?,?,?,?,?)");
$stmt->bind_param("sssssssssss", $title, $desc1,$category,$img, $img1,$img2,$img3,$zip, $user_id,$cat_title,$cat_id);
if($stmt->execute()){
//echo "<script>alert('Your project added successfully');
echo "<script>alert('Your project added successfully ')</script>
<script>setTimeout(\"self.history.back();\",0000);</script>";
}else{
echo "<script>alert('Failed added your project');</script>";
}
?>
$title=validateInput($_POST['title']);
$desc1=validateInput($_POST['desc1']);
//$content=validateInput($_POST['content']);
$cat_title=validateInput($_POST['cat_title']);
$cat_id=validateInput($_POST['cat_id']);
$stmt=$con->prepare(“插入到产品中(标题、说明1、类别标题、img、img1、img2、img3、zip、用户id、类别id)值(?,,,,,,,,,,,,,)”;
$stmt->bind_参数(“sss”、$title、$desc1、$category、$img、$img1、$img2、$img3、$zip、$user_id、$cat_title、$cat_id);
如果($stmt->execute()){
//echo“警报('您的项目已成功添加');
echo“警报('您的项目已成功添加')
setTimeout(\“self.history.back();\”,0000);”;
}否则{
echo“警报('添加项目失败');”;
}
?>
问题就在这里:
$stmt = $con->prepare("INSERT INTO products (title,desc1,cat_title, img, img1,img2,img3,zip,user_id,cat_id) VALUES (?, ?, ?, ?,?,?,?,?,?,?,?)");
$stmt->bind_param("sssssssssss", $title, $desc1,$category,$img, $img1,$img2,$img3,$zip, $user_id,$cat_title,$cat_id);
这是您的原始代码,问题是您在产品中插入的$cat\u title
应该介于$desc1
和$category
之间
这应该起作用:
$stmt = $con->prepare("INSERT INTO products (title,desc1,cat_title, img, img1,img2,img3,zip,user_id,cat_id) VALUES (?, ?, ?, ?,?,?,?,?,?,?)");
$stmt->bind_param("ssssssssii", $title, $desc1,$cat_title,$img, $img1,$img2,$img3,$zip, $user_id,$cat_id);
您也只有10列,但试图插入11列信息
您必须将用户Id和Cat Id解析为整数而不是字符串。现在更新的代码应该可以工作了。您必须将参数绑定到ssss II
插入参数中缺少的参数,您规定了11个字段,但只输入10个。将代码替换为以下内容:
$title = validateInput($_POST['title']);
$desc1 = validateInput($_POST['desc1']);
//$content = validateInput($_POST['content']);
$cat_title = validateInput($_POST['cat_title']);
$cat_id = validateInput($_POST['cat_id']);
$stmt = $con->prepare("INSERT INTO products (title,desc1,cat_title,img,img1,img2,img3,zip,user_id,cat_id) VALUES (?,?,?,?,?,?,?,?,?,?)");
$stmt->bind_param("ssssssssss", $title,$desc1,$cat_title,$img, $img1,$img2,$img3,$zip,$user_id,$cat_id);
if($stmt->execute()){
//echo "<script>alert('Your project added successfully');
echo "<script>alert('Your project added successfully ')</script>
<script>setTimeout(\"self.history.back();\",0000);</script>";
} else {
echo "<script>alert('Failed added your project');</script>";
}
?>
$title=validateInput($_POST['title']);
$desc1=validateInput($_POST['desc1']);
//$content=validateInput($_POST['content']);
$cat_title=validateInput($_POST['cat_title']);
$cat_id=validateInput($_POST['cat_id']);
$stmt=$con->prepare(“插入到产品中(标题、说明1、类别标题、img、img1、img2、img3、zip、用户id、类别id)值(?,,,,,,,,,,?)”;
$stmt->bind_参数(“ssss”、$title、$desc1、$cat_title、$img、$img2、$img3、$zip、$user_id、$cat_id);
如果($stmt->execute()){
//echo“警报('您的项目已成功添加');
echo“警报('您的项目已成功添加')
setTimeout(\“self.history.back();\”,0000);”;
}否则{
echo“警报('添加项目失败');”;
}
?>
在PHP代码中插入什么都没有。你能澄清一下吗?我添加了我的插入产品PHP文件嘿,看看我更新的答案。我想我发现了问题我检查了这一行,但显示了相同的结果没有插入cat_iti checked但没有像这样插入错误注意:未定义索引:第257行的C:\xampp\htdocs\zblog\upload-source.php中的cat_title注意:未定义索引:第258行的C:\xampp\htdocs\zblog\upload-source.php中的cat_id致命错误:调用成员函数bind_param()在C:\xampp\htdocs\zblog\upload-source.php中的布尔值上277@ranjeewa什么是upload source.php?用户上传项目文件upload-source.php这是blog,不幸的是,这可能也会失败。检查我的答案。我认为这是因为$cat\u title
将被插入到用户id
中,这将导致类型不匹配,对吗?Riz waan,是的。我刚看到你的答案,我在询问中确实有些困惑;Pbut显示如下通知:未定义索引:第257行C:\xampp\htdocs\zblog\upload-source.php中的cat_title通知:第258行C:\xampp\htdocs\zblog\upload-source.php中的未定义索引:第277行C:\xampp\htdocs\zblog\upload-source.php中的cat_id致命错误:调用C:\xampp\htdocs\zblog\upload-source.php中布尔值上的成员函数bind_param()