可捕获的致命错误:类mysqli_result的对象无法在第44行转换为字符串

时间:2016-12-27 06:19:08

标签: php mysqli sql-insert

  

我正在尝试将数据插入表中,但是出现此错误 -   可捕获的致命错误:类mysqli_result的对象不可能   在第44行转换为字符串   错误显示在以下行。

$query= "insert into product(proname,prodesc,proprice,proimg,catid) values('$proname','$prodesc','$proprice','$file_path','$catid')";
            if(mysqli_query($conn,$query)){
                header('location:product.php');
            }
            else{
                echo 'cant insert data'.mysqli_error($conn);
            }
        }
    }
    ?>
  

以下是整个计划

$errors=array();
if(!(empty($_POST))){
    $proname=$_POST['proname'];
    $proprice=$_POST['proprice'];
    $prodesc=$_POST['prodesc'];
    $catname=$_POST['cat'];
    $catid=mysqli_query($conn,"select catid from category where catname='$catname'") or die('cant get category id'.mysqli_error($conn));
    if(empty($proname) or empty($proprice)){
        $errors[]='Please enter product name and price.';
    }
    if(isset($_FILES['proimg'])){
        $file_name = $_FILES['proimg']['name'];
        $file_size =$_FILES['proimg']['size'];
        $file_tmp =$_FILES['proimg']['tmp_name'];
        $file_type=$_FILES['proimg']['type'];
        $file_ext=strtolower(end(explode('.',$_FILES['proimg']['name'])));
        $expensions= array("jpeg","jpg","png");
        $file_path='imgproduct/'.$file_name;
        if(in_array($file_ext,$expensions)=== false){
            $errors[]="extension not allowed, please choose a JPEG or PNG file.";
        }   
    }
    else{
        $errors[]='Please upload an image of product';
    }
    if(!(empty($errors))){
        print_r($errors);
    }
    else{
        if(!(move_uploaded_file($file_tmp,$file_path))) {
            echo '1.file not uploaded';
            exit;
        }
        $query= "insert into product(proname,prodesc,proprice,proimg,catid) values('$proname','$prodesc','$proprice','$file_path','$catid')";
        if(mysqli_query($conn,$query)){
            header('location:product.php');
        }
        else{
            echo 'cant insert data'.mysqli_error($conn);
        }
    }
}
?>

2 个答案:

答案 0 :(得分:0)

对不起以前的回答。希望现在它将解决问题。

$row = mysqli_fetch_array($result); $catid = $row['catid'];

$errors=array();
if(!(empty($_POST))){
    $proname=$_POST['proname'];
    $proprice=$_POST['proprice'];
    $prodesc=$_POST['prodesc'];
    $catname=$_POST['cat'];
    $result =mysqli_query($conn,"select catid from category where catname='$catname'") or die('cant get category id'.mysqli_error($conn));
    $row = mysqli_fetch_array($result);
    $catid = $row['catid'];

    if(empty($proname) or empty($proprice)){
        $errors[]='Please enter product name and price.';
    }
    if(isset($_FILES['proimg'])){
        $file_name = $_FILES['proimg']['name'];
        $file_size =$_FILES['proimg']['size'];
        $file_tmp =$_FILES['proimg']['tmp_name'];
        $file_type=$_FILES['proimg']['type'];
        $file_ext=strtolower(end(explode('.',$_FILES['proimg']['name'])));
        $expensions= array("jpeg","jpg","png");
        $file_path='imgproduct/'.$file_name;
        if(in_array($file_ext,$expensions)=== false){
            $errors[]="extension not allowed, please choose a JPEG or PNG file.";
        }   
    }
    else{
        $errors[]='Please upload an image of product';
    }
    if(!(empty($errors))){
        print_r($errors);
    }
    else{
        if(!(move_uploaded_file($file_tmp,$file_path))) {
            echo '1.file not uploaded';
            exit;
        }
        $query= "insert into product(proname,prodesc,proprice,proimg,catid) values('$proname','$prodesc','$proprice','$file_path','$catid')";
        if(mysqli_query($conn,$query)){
            header('location:product.php');
        }
        else{
            echo 'cant insert data'.mysqli_error($conn);
        }

答案 1 :(得分:-1)

更改

$query= "insert into product(proname,prodesc,proprice,proimg,catid) values('$proname','$prodesc','$proprice','$file_path','$catid')";

$query= "insert into product(proname,prodesc,proprice,proimg,catid) values($proname,$prodesc,$proprice,$file_path,$catid)";