【问题标题】:from mysql to mysqli updating code [duplicate]从mysql到mysqli更新代码[重复]
【发布时间】:2017-04-09 13:40:11
【问题描述】:

我正在尝试更新旧脚本,如下所示。

mysql sql statement that works is:
$result = mysql_query( "SELECT products.products_id AS id, 
products_description.products_name AS name,
products.products_quantity AS quantity, products.products_weight AS weight, 
products.products_price AS price
FROM products, products_description WHERE 
products.products_id=products_description.products_id;") or 
die(mysql_error());

while($row = mysql_fetch_array( $result )) {

我无法工作的mysqli语句是:

$sql = "SELECT products_id, products_description.products_name, 
products_quantity, products_weight, products_price FROM products INNER JOIN 
products_description on products.products_id = 
products_description.products_id";

$result = mysqli_query($con, $sql);
if(mysqli_num_rows($result)>0){


while(null !== ($row = mysqli_fetch_assoc($result))) {

我收到的错误是:

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean 
given in index.php on line 19

mysqli 语句有效,但在我将 products_description.products_name 添加到查询时无效。

【问题讨论】:

    标签: php mysql sql mysqli


    【解决方案1】:

    mysqli_query() 返回:

    对于成功的 SELECT、SHOW、DESCRIBE 或 EXPLAIN 查询,它将返回一个 mysqli_result 对象。

    对于其他成功的查询,它将返回 TRUE。失败时为 FALSE

    从您的错误中可以明显看出,您将False 设为$result,然后将其传入mysqli_num_rows(),预计为mysqli_result

    如果productsproducts_description 两个表中存在相同的列名,则需要将$sql 修改如下,因为可能存在不明确的列错误。

    $sql = "SELECT p.products_id, pd.products_name, p.products_quantity, p.products_weight, p.products_price 
    FROM products p 
    INNER JOIN products_description pd on p.products_id = pd.products_id";
    

    【讨论】:

    猜你喜欢
    • 2012-08-14
    • 1970-01-01
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    • 2013-04-01
    • 1970-01-01
    • 2013-12-06
    相关资源
    最近更新 更多