Почему эта функция $pdo импортирует CSV-файл в алфавитном порядке по строкам в таблицу базы данных?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Почему эта функция $pdo импортирует CSV-файл в алфавитном порядке по строкам в таблицу базы данных?

Сообщение Anonymous »

Почему мой CSV-файл импортируется в базу данных в алфавитном порядке по первому столбцу Product_key? Вместо того, чтобы импортировать просто построчно, от первой строки CSV до последней строки?
Мой CSV не сортируется по Product_key, но после импорта строки сортируются в алфавитном порядке в my_table, как видно в PHPMyAdmin. Это таблица InnoDB.
Я не использую ASC или DESC в $pdo->prepare
Мне хотелось бы это выяснить, потому что на странице я показываю данные из таблицы под формой загрузки файла CSV и хочу, чтобы данные выглядели так же, как загруженный файл.
Изменить 26.03.26:
SHOW CREATE TABLE показывает:
vw_star_ratings CREATE TABLE `vw_star_ratings` (
 `product_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL,
 `ID_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL,
 `value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL,
 UNIQUE KEY `key_index` (`product_key`,`ID_key`,`value`),
 KEY `product_key` (`product_key`),
 KEY `ID_key` (`ID_key`),
 KEY `value` (`value`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci

Есть идеи?
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
]);

try {
$pdo->exec("TRUNCATE TABLE my_table");

$file = fopen($fileTmpPath, "r");

// Start transaction
$pdo->beginTransaction();

$stmt = $pdo->prepare("
INSERT INTO my_table (product_key, ID_key, value)
VALUES (?, ?, ?)
");

// Skip header
fgetcsv($file);

while (($row = fgetcsv($file, 1000, ",")) !== FALSE) {
if (count($row) < 3) continue;

$stmt->execute([$row[0], $row[1], $row[2]]);
}

fclose($file);

$pdo->commit();
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»