Всем привет.
Суть проблемы:
_ загружаю на сервер файл .csv с целью обновить цены в магазине
_ файл содержит только артикул и цену товара
_ извлекаю содержимое файла (артикул) и ищу в базе (MySql) соответствующее значение
_ артикулы представлены только цифрами без букв (к примеру 11033)
_ в итоге процентов 10 записей он не находит, но они точно есть
_ Field (article) | Type (varchar) | Collation (utf8_general_ci)
1. Nematod - 28 Февраля, 2021 - 17:23:01 - перейти к сообщению
2. Vladimir Kheifets - 01 Марта, 2021 - 17:22:49 - перейти к сообщению
Nematod пишет:
Всем привет.
Суть проблемы:
_ загружаю на сервер файл .csv с целью обновить цены в магазине
_ файл содержит только артикул и цену товара
_ извлекаю содержимое файла (артикул) и ищу в базе (MySql) соответствующее значение
_ артикулы представлены только цифрами без букв (к примеру 11033)
_ в итоге процентов 10 записей он не находит, но они точно есть
_ Field (article) | Type (varchar) | Collation (utf8_general_ci)
Суть проблемы:
_ загружаю на сервер файл .csv с целью обновить цены в магазине
_ файл содержит только артикул и цену товара
_ извлекаю содержимое файла (артикул) и ищу в базе (MySql) соответствующее значение
_ артикулы представлены только цифрами без букв (к примеру 11033)
_ в итоге процентов 10 записей он не находит, но они точно есть
_ Field (article) | Type (varchar) | Collation (utf8_general_ci)
Добрый день!
Извлекаемое содержимое "артикул" может содержать лишние символы, например, пробелы.
Примените функцию trim, чтобы их убрать.
Если, в Field (article) только цифры, без букв то, почему Type (varchar)?
Допустим, что в Field (article) всё таки есть не только цифры, например, "abc11033", тогда напишите:
$query="SELECT ..... WHERE article REGEXP '".trim($article)."$'";
Удачи!
3. don.bidon - 04 Марта, 2021 - 13:57:06 - перейти к сообщению
Vladimir Kheifets пишет:
Извлекаемое содержимое "артикул" может содержать лишние символы, например, пробелы.
Примените функцию trim, чтобы их убрать.
Если, в Field (article) только цифры, без букв то, почему Type (varchar)?
Допустим, что в Field (article) всё таки есть не только цифры, например, "abc11033", тогда напишите:
$query="SELECT ..... WHERE article REGEXP '".trim($article)."$'";
Удачи!
Извлекаемое содержимое "артикул" может содержать лишние символы, например, пробелы.
Примените функцию trim, чтобы их убрать.
Если, в Field (article) только цифры, без букв то, почему Type (varchar)?
Допустим, что в Field (article) всё таки есть не только цифры, например, "abc11033", тогда напишите:
$query="SELECT ..... WHERE article REGEXP '".trim($article)."$'";
Удачи!
1) и устроить через CSV-файл SQL-инъекцию )))
2) предположим, что в таблице лям записей, поле `article` было индексное, прощайте индексы )))
Ну и к ТС, с английского "article" переводится как "статья", есть общепринятое "sku", но если поделие, которому обновляете базу, досталось по наследству, тогда не Вам замечание.