0

我刚刚开始将我的网站从 mysql 转换为 mysqli,并将我的一项功能更改为 mysqli。我上传了这个新功能,但是现在数据库中没有显示任何结果。那么这只是代码,还是整个网站都必须先在 mysqli 中才能正常工作?难道是因为我的数据库连接还是mysql?我转换了这个

function viewOrdersAdmin(){
//This block grabs the orders
$order_list = "";
//Selecting all the orders in the table from that member
$sql = mysql_query("SELECT * FROM `transactions`");

while ($transactions = mysql_fetch_array($sql)) {
    //creating variables from the information
    $order_id = $transactions["order_id"];
    $mem_id = $transactions["mem_id"];

    $order_details = mysql_query("SELECT * FROM `transactionDetails` WHERE `order_id` = $order_id GROUP BY order_id");
    $orderDetailsCount = mysql_num_rows($order_details);
    while ($row = mysql_fetch_array($order_details)) {
        //creating variables from the information
        $order_product_id = $row["Product_ID"];

        $member_details = mysql_query("SELECT * FROM `members` WHERE `mem_id` = $mem_id");
        $memberDetailsCount = mysql_num_rows($member_details);
        while ($row2 = mysql_fetch_array($member_details)) {
            //creating variables from the information
            $order_mem_fname = $row2["mem_first_name"];
            $order_mem_lname = $row2["mem_last_name"];

        $order_list .= "Order ID:$order_id - Customer Name: $order_mem_fname $order_mem_lname  &nbsp; &nbsp; &nbsp; <a href='manage_order.php?orderid=$order_id'>View</a> &bull; <a href='manage_orders.php?deleteid=$order_id'>Delete</a><br/>";

        }
    }
}

if (count($orderDetailsCount) == 0) {
    $order_list = "You have no orders to display";
}

print_r($order_list);
}

对此

function viewOrdersAdmin(){ 
//This block grabs the orders 
$order_list = ""; 
//Selecting all the orders in the table from that member 
$sql = mysqli_query($GLOBALS["___mysqli_ston"], "SELECT * FROM `transactions`"); 

while ($transactions = mysqli_fetch_array($sql)) { 
    //creating variables from the information 
    $order_id = $transactions["order_id"]; 
    $mem_id = $transactions["mem_id"]; 

    $order_details = mysqli_query($GLOBALS["___mysqli_ston"], "SELECT * FROM `transactionDetails` WHERE `order_id` = $order_id GROUP BY order_id"); 
    $orderDetailsCount = mysqli_num_rows($order_details); 
    while ($row = mysqli_fetch_array($order_details)) { 
        //creating variables from the information 
        $order_product_id = $row["Product_ID"]; 

        $member_details = mysqli_query($GLOBALS["___mysqli_ston"], "SELECT * FROM `members` WHERE `mem_id` = $mem_id"); 
        $memberDetailsCount = mysqli_num_rows($member_details); 
        while ($row2 = mysqli_fetch_array($member_details)) { 
            //creating variables from the information 
            $order_mem_fname = $row2["mem_first_name"]; 
            $order_mem_lname = $row2["mem_last_name"]; 

        $order_list .= "Order ID:$order_id - Customer Name: $order_mem_fname $order_mem_lname  &nbsp; &nbsp; &nbsp; <a href='manage_order.php?orderid=$order_id'>View</a> &bull; <a href='manage_orders.php?deleteid=$order_id'>Delete</a><br/>"; 

        } 
    } 
} 

if (count($orderDetailsCount) == 0) { 
    $order_list = "You have no orders to display"; 
} 

print_r($order_list); 

}

4

1 回答 1

1

如果要同时使用两个不同的库,则需要两个数据库连接:一个 mysql 连接和一个单独的 mysqli 连接。

但是,您可以同时使用两者而不会出现任何问题。它只会暂时使用更多资源,因为您通常有两个连接到数据库的连接。

顺便说一句,我不建议为您的数据库连接使用全局变量,您应该将它作为参数传递给您的函数,因为这样可以更轻松地进行故障排除。

您还应该使用准备好的语句来避免任何 sql 注入问题。

于 2013-03-16T00:38:43.837 回答