Sql查询没有在php中运行,也许是与sql相关的问题

时间:2016-01-21 07:04:37

标签: php mysql oop

  

函数正常运行,我插入数据的其他查询也运行良好,如下所述。
  这是我得到的错误“错误:SELECT MAX(product_id)FROM product_attribute”

  public function add_tbl1($attribute_id , $attribute_description){
    $con=$this->con;
    $id = mysqli_real_escape_string($con, $attribute_id);
    $description = mysqli_real_escape_string($con, $attribute_description);
    $sql2="SELECT MAX(product_id) FROM product_attribute ";
    $no=0;


    if ($con->query($sql2) === TRUE) {
        $no= $con->query($sql2);
        $no=$no+1;
        echo $no;


    } else {
        echo "Error: " . $sql2 . "<br>" . $con->error;
    }   

    /*$sql = "INSERT INTO product_attribute ( attribute_id, attribute_description)
    VALUES ( '$id', '$description')";

    if ($con->query($sql) === TRUE) {
        echo "New record created successfully";
    } else {
        echo "Error: " . $sql . "<br>" . $con->error;
    }   */

    }

2 个答案:

答案 0 :(得分:2)

$con->query($sql2) === TRUE

mysqli::query TRUE语句成功时不会返回SELECT。它返回

  

对于成功的SELECT,SHOW,DESCRIBE或EXPLAIN查询,mysqli_query()将返回一个mysqli_result对象

因此,相应地改变你的if条件。

$sql2="SELECT MAX(product_id) as id FROM product_attribute ";
if ($result = $con->query($sql2)) {
    $row = $result->fetch_assoc();
    $id  = $row["id"];
}

答案 1 :(得分:2)

如果$ con是mysqli连接,则带有SELECT的$ con> gt查询将永远不会返回true。 它将返回false或资源。

你应该选择

 $con->query($sql2) !== false))

来自http://php.net/manual/en/mysqli.query.php

  

失败时返回FALSE。成功的SELECT,SHOW,DESCRIBE或   EXPLAIN查询mysqli_query()将返回一个mysqli_result对象。对于   其他成功的查询mysqli_query()将返回TRUE。