duannaoben8011 2014-12-21 15:10 采纳率: 0%
浏览 98
已采纳

我从mysql获取数据时收到数据库错误[重复]

I am developing a e-commerce site . I want to get the username $_SESSION['REMOTE_ADDR']

the code is here :

$new_sql    = 'SELECT
               sum(amount) as items_total
               FROM
               products_added
               where `username` = '.mysqli_real_escape_string($conn, $_SESSION["REMOTE_ADDR"]).'
               ORDER BY id';

        $resu       =  mysqli_query($conn, $new_sql);
        $itemsTotal =  mysqli_fetch_array($resu);
        $grandTotal =  ($itemsTotal['items_total']);
        echo $grandTotal;

But getting:

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\orlando\php\include\content.php on line 120

</div>
  • 写回答

1条回答 默认 最新

  • dpgkg42484 2014-12-21 16:31
    关注

    Use the following method. Escape the variable before, it's easier.

    Sidenote:

    I'm pretty sure you meant to use $_SERVER["REMOTE_ADDR"] instead of $_SESSION["REMOTE_ADDR"].

    $_SESSION["REMOTE_ADDR"] isn't a valid session variable.

    Consult: http://php.net/manual/en/reserved.variables.server.php on $_SERVER variable(s).

    Code:

    $remote_address = mysqli_real_escape_string($conn, $_SERVER["REMOTE_ADDR"]);
    $new_sql    = "SELECT
                   sum(amount) as items_total
                   FROM
                   products_added
                   where `username` = '".$remote_address."'
                   ORDER BY id";
    
    $resu = mysqli_query($conn, $new_sql) or die(mysqli_error($conn));
    $itemsTotal =  mysqli_fetch_array($resu);
    $grandTotal =  $itemsTotal['items_total'];
    echo $grandTotal;
    

    Footnotes:

    However, and as Gordon (Linoff) states in a comment:

    You have a sum() with no group by, so it is returning one row. However, you have an order by suggesting that you are expecting more than one row.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?