假設我有一個表是這樣的:SQL查詢不斷「丟失」一行
+------+---------+--------------+-------------+---------------+
| id | tstamp | product_id | name | configuration |
+------+---------+--------------+-------------+---------------+
| 3 | 15 | 02 | bike | abc |
| 2 | 16 | 03 | car | dfg |
| 1 | 11 | 04 | tree | ehg |
+------+---------+--------------+-------------+---------------+
當我運行像
SELECT id, tstamp, product_id, name, configuration
FROM tl_iso_product_collection_item
ORDER BY `id` DESC
它返回3行的簡單查詢。如預期。作品,對吧?但是,如果我將這個查詢實現爲一個PHP腳本並嘗試獲取行,那麼總是會失去一個。總是。即使在最簡單的查詢。我在哪裏犯了一個錯誤?
腳本是這樣的:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$connection = mysqli_connect('localhost', 'user', 'pw', 'db');
mysqli_set_charset($connection,"utf8");
$query = "SELECT id, tstamp, product_id, name, configuration
FROM table
ORDER BY `id` DESC "
$result = mysqli_query($connection, $query);
while ($row=mysqli_fetch_row($result)) {
echo $row[0];
echo $row[1];
echo $row[2];
echo $row[3];
echo $row[4];
}
mysqli_close($connection);
?>
這將導致顯示只有2個3行。我的問題是,爲什麼這樣?如果我將上面的查詢直接插入到phpmyadmin中,它會顯示3個結果,而不是2.這裏出現了什麼問題?我錯過了什麼嗎?提前致謝。當您遍歷結果使用,因此內部的「指針」,以目前的戰績獲得晉級在每個結果集的第二個記錄,併爲此 -
你在$查詢定義btw後缺少一個分號 – RamRaider
作爲一個側面提示,你可以通過使用'mysqli_fetch_assoc'而不是'mysqli_fetch_row'來幫助你自己,因爲你可以訪問'$ row ['product_id']' – M1ke
你可以粘貼你的實際輸出嗎?您在上面的CLI中運行的查詢中有不同的表名。 – M1ke