我从mysql获取数据时收到数据库错误

时间:2014-12-21 15:10:59

标签: php mysql e-commerce rdbms

我正在开发一个电子商务网站。我想获取用户名$_SESSION['REMOTE_ADDR']

代码在这里:

$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;

但是得到:

  

警告:mysqli_fetch_array()要求参数1为mysqli_result,第120行的C:\ xampp \ htdocs \ orlando \ php \ include \ content.php中给出布尔值

1 个答案:

答案 0 :(得分:0)

使用以下方法。之前逃离变量,它更容易。

<强> 旁注:

我很确定您打算使用$_SERVER["REMOTE_ADDR"]代替$_SESSION["REMOTE_ADDR"]

$_SESSION["REMOTE_ADDR"]不是有效的会话变量。

$_SERVER变量上咨询: http://php.net/manual/en/reserved.variables.server.php

代码:

$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;

<强>脚注:

然而,正如戈登(林诺夫)在评论中所述:

您的sum()没有group by,因此返回一行。但是,您有order by建议您预计会有多行。