簡體   English   中英

特定行錯誤的PHP

[英]specific line error php

 global $db_name;
      echo '<p><h3>Your Shopping Cart</h3></p>';

      if(isset($_SESSION['cart'])) {

        $total = 0;
        echo '<table>';
        echo '<tr>';
        echo '<th>Code</th>';
        echo '<th>Name</th>';
        echo '<th>Quantity</th>';
        echo '<th>Cost</th>';
        echo '</tr>';
        foreach($_SESSION['cart'] as $product_id => $quantity) {
///the problem is with these two line underneath 
//Warning: mysqli_query() expects parameter 1 to be mysqli, string given in C:\xampp\htdocs\.... on line 147
        $do= "SELECT product_code, product_name, product_desc, qty, price FROM products WHERE id = .$product_id";
        $result = mysqli_query($db_name,$do);


        if($result){

          while($obj = $result->fetch_object()) {
            $cost = $obj->price * $quantity; //work out the line cost
            $total = $total + $cost; //add to the total cost

            echo '<tr>';
            echo '<td>'.$obj->product_code.'</td>';
            echo '<td>'.$obj->product_name.'</td>';
            echo '<td>'.$quantity.'&nbsp;<a class="button [secondary success alert]" style="padding:5px;" href="update-cart.php?action=add&id='.$product_id.'">+</a>&nbsp;<a class="button alert" style="padding:5px;" href="update-cart.php?action=remove&id='.$product_id.'">-</a></td>';
            echo '<td>'.$cost.'</td>';
            echo '</tr>';
          }
        }

      }



      echo '<tr>';
      echo '<td colspan="3" align="right">Total</td>';
      echo '<td>'.$total.'</td>';
      echo '</tr>';

      echo '<tr>';
      echo '<td colspan="4" align="right"><a href="update-cart.php?action=empty" class="button alert">Empty Cart</a>&nbsp;<a href="products.php" class="button [secondary success alert]">Continue Shopping</a>';
      if(isset($_SESSION['username'])) {
        echo '<a href="orders-update.php"><button style="float:right;">COD</button></a>';
      }

      else {
        echo '<a href="login.php"><button style="float:right;">Login</button></a>';
      }

      echo '</td>';

      echo '</tr>';
      echo '</table>';
    }

有一條線指出

警告:mysqli_query()期望參數1為mysqli,在第147行的C:\\ xampp \\ htdocs ....中給出的字符串。

我只是想不出該怎么辦,看了很多tut,但無濟於事。 如果你們中的任何一個可以幫助我找出問題所在,我將有義務。

問題出在變量$db_name 我在您的代碼中看不到它的來源,但它必須是mysqli類型。

根據php手冊 ,第一個參數需要為“ mysqli_connect()或mysqli_init()返回的鏈接標識符”

因此,您必須使用以下函數之一創建mysqli對象,然后將該對象傳遞給mysqli_query()

附帶說明:您應該使用准備好的語句。 否則,生成不安全的代碼太容易了。

這是從這里來的

$result = mysqli_query($db_name,$do);

在傳遞數據庫名稱時

函數mysqli_query具有兩個需要的參數:

mysqli_query( connection, query );

連接是要執行查詢的連接,如果沒有連接,該方法將不知道如何處理查詢。

摘自您的評論之一:

$db_username = 'root';
$db_password = '';
$db_name = 'ecommerce';
$db_host = 'localhost';

$mysqli = new mysqli($db_host, $db_username, $db_password,$db_name);

您現在需要使用

$result = mysqli_query( $mysqli , $do );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM