Регистрация
Вход через соцсети
Восстановление пароля

fgetcsv + INSERT -> Знак вопроса в начале строки в бд

Новый топик
30.10.2011, 01:41
Ответить | Цитировать
Гость
Гость

Я в недоумении. С помощью fgetcsv дергаю данные из текстового файла.
ПЕРВОЕ (может из-за этого?!) поле - логин, в массиве под индексом 0. Когда делаю вывод echo - ничего необычного не замечаю, но как включаю переменную в запрос, первым символом в базе оказывается знак вопроса.

while (($data = fgetcsv($f, 1000, ";")) !== FALSE) {
if (($num = count($data)) == 10){
$card_number = trim($data[0]);
$db->query("INSERT INTO `User` (`Login`,...) VALUES ('$card_number', ...)");
//...
echo $card_number; //Выводит "dddd", а в базе "?dddd"

Проблема может быть в $db->query?
30.10.2011, 11:45
Ответить | Цитировать
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

Цитата:
Когда делаю вывод echo - ничего необычного не замечаю

Следующим шагом обычно выводят уже ascii код каждого символа - так заметнее на порядок )

Цитата:
Проблема может быть в $db->query?

Нет.

Оч. вероятно, что из csv берется какой-то нечитаемый символ, который не тримится.

В общем, причину сами смотрите, а следствие попробуйте исправить вот так:
Код:
$db->query("INSERT INTO `User` (`Login`,...) VALUES ('".$db->escape($card_number)."', ...)");


Temet nosce...
198 196 2011-10-30 11:45:23 11642
Описание проекта