0

我正在尝试将产品信息插入数据库,但我一定遗漏了一些东西。它不会向数据库中插入任何内容,甚至没有显示任何错误。

我的代码有什么问题?

<?php 

    if(!empty($product_name)){
        if(!empty($product_category)){

        ////////////////////////////////////////////////
        ///// connect to database
        ////////////////////////////////////////////////

        $dbc = new mysqli("localhost", "root", "password", "table");

        // Check connection
        if (mysqli_connect_errno($dbc)) {
            echo "Failed to connect to MySQL: " . mysqli_connect_error();
        }

        if (isset($_POST['product_name'])) {

            $pid = ($_POST['thisID']);
            $product_name = ($_POST['product_name']);
            $product_category = ($_POST['product_category']);
            $product_detail = ($_POST['product_detail']);
            $product_price = ($_POST['product_price']);
            $product_company = ($_POST['product_company']);

            $query = "INSERT INTO product (product_name, product_category, product_price, product_detail,product_detail, product_company)
                VALUES ( '$product_name','$product_category','$product_price','$product_detail','$product_company')";

            $result= $this->mysqli->query($query) or die(mysqli_connect_errno()."Data cannot inserted");

            if($result){
                header('location:cp_product.php');
            }

            mysqli_close($dbc);
        }
    }}

?>
4

6 回答 6

2

在您的查询中,您已经添加了product_detail两次列,应该有一个,因为五列指的是 5 个值

product_detail,product_detail,

INSERT INTO product (product_name, product_category, product_price, product_detail, product_company)
VALUES ( '$product_name','$product_category','$product_price','$product_detail','$product_company');
于 2013-10-11T20:03:01.197 回答
0

没人这么说!你如何通过你的连接传递你的查询?

你应该有类似的东西

$dbc->query( $query )

或者在你的情况下你在哪里分配$this->mysqli

不要将面向对象样式与程序样式混合,因为这可能会在将来引起您的困惑。

选择一个并继续以该风格进行编码。如果可以选择OOP。

祝你好运

于 2014-08-09T13:07:06.563 回答
0

这一行是错误的:

    $result= $this->mysqli->query($query) or die(mysqli_connect_errno()."Data cannot inserted");

它应该是:

    $result = $dbc->query($query) or die ($dbc->error . "Data cannot be inserted");

如果你这样做了,你会得到列列表与列表不匹配的错误VALUES,因为你product_detail在列列表中输入了两次。

于 2013-10-11T20:07:51.487 回答
0

product_detail在插入查询中两次

于 2013-10-11T20:03:17.727 回答
0

我看到您将数据库称为“表”。
您的数据库是否称为“表”?首先试试这个并告诉我们你得到了什么错误:
不要将过程代码与面向对象的代码混合。检查 php.net 示例。(现在删除所有“ifs”。) $dbc = new mysqli("localhost", "root", "password", "table");

 // Check connection
 if (mysqli_connect_errno())
  {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

 $pid = ($_POST['thisID']);
 $product_name = ($_POST['product_name']);
 $product_category = ($_POST['product_category']);
 $product_detail = ($_POST['product_detail']);
 $product_price = ($_POST['product_price']);
 $product_company = ($_POST['product_company']);

 $query = "INSERT INTO product (product_name, product_category, product_price, product_detail, product_company)  
  VALUES (   '$product_name','$product_category','$product_price','$product_detail','$product_company')";   

  echo "query: ".$query."<br>";
  mysqli->query($query);

  $mysqli->close(); //object oriented.
  ?>
于 2013-10-11T20:18:39.837 回答
0

您需要在您设置的 HTML 表单变量中使用数据库连接,在本例中为 $dbc。

$pid = ($dbc, $_POST['thisID']);
$product_name = ($dbc, $_POST['product_name']);
$product_category = ($dbc, $_POST['product_category']);
$product_detail = ($dbc, $_POST['product_detail']);
$product_price = ($dbc, $_POST['product_price']);
$product_company = ($dbc,$_POST['product_company']);
于 2014-08-09T12:52:04.117 回答