0

我正在尝试将我的一个旧代码重写为 mysqli,因为我收到 Allowed memory size exhausted 错误。我阅读了一些使用 mysqli_real_query 的提示,它将激活查询而不将所有记录加载到 RAM 中。

我的旧代码:

<?
$sql = "SELECT * FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) WHERE p.status = 1";

$query   = $this->db->query($sql);
$results = $query->rows;

foreach ($results as $result) {
    print_r("$result");

    /* Output:
    Array
    (
        [product_id] => 17763
        [feed_product_id] => 0
        [import_id] => 0
        [name] => Name
        [model] => MODEL
        [sku] => 390348
        [upc] => 390348
        ...
    )  
    */  
}

?>

到目前为止我的新代码:

<?

$db = mysqli_connect('localhost', 'username', 'pwd', 'db');

$sql = "SELECT * FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) WHERE p.status = 1";

mysqli_real_query($db, $sql);
$result = mysqli_use_result($db);

while ($row = mysqli_fetch_row($result)) {
    print("Test: " . $row);

    /* Output:
    (
        [0] => 17763
        [1] => 0
        [2] => 0
        [3] => Name
        [4] => MODEL
        [5] => 390348
        [6] => 390348
    */    
}

?>

如何在新代码中获得相同的结果?我的新数组键是 0、1、2、3... 而不是列名。

4

0 回答 0