函数运行正常,我插入数据的其他查询也运行良好,下面评论。
这是我收到的错误"错误:从product_attribute中选择最大值(product_id) "
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;
} */
}
如果$con是mysqli连接,那么带有SELECT的$con->query将永远不会返回true。它将返回 false 或资源。
你应该检查一下
$con->query($sql2) !== false))
从 http://php.net/manual/en/mysqli.query.php
失败时返回 FALSE。成功选择、显示、描述或 EXPLAIN 查询 mysqli_query() 将返回一个mysqli_result对象。为 其他成功的查询 mysqli_query() 将返回 TRUE。
$con->query($sql2) === TRUE
mysqli::query 不会返回SELECT
语句成功时的TRUE
。它返回
对于成功的选择、显示、描述或解释查询,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"];
}