Php 将行插入mysql表失败

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'];

我曾尝试编写代码,根据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'];
            $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()