@status

Почему строка записывается в БД MYSQL, как число?

Нужно записать в базу данных MYSQL артикул из восьми цифр.
Если артикул начинается с нулей, например '00345678, то при первой записи он записывается верно, с нулями.
Тип поля 'article' — varchar.
$quer = 'insert into '.TABL_ITMS.' (article, title, description)';
	$quer .= ' values (\''.$_REQUEST['article'].'\', \''.$_REQUEST['title'].'\', \'';
	$quer .= $_REQUEST['description'];
        $quer .= ')';
	mysql_query($quer, $conn);

Но при обновлении артикул почему-то записывается в базу данных без первых нулей: '345678'.
Причем я уже явно добавил нули вначале, чтобы исключить, что изначально приходит артикул без нулей.
$artc = $_REQUEST['article'];
	while(strlen($artc) < 8)
	$artc = '0'.$artc;

        $quer = 'update '.TABL_ITMS.' set article = '.$artc.', ';
	$quer .= ' title = \''.$_REQUEST['title'].'\', ';
	$quer .= ' description = \''.$_REQUEST['description'].'\', ';
	$quer .= ' where id = '.$_REQUEST['article_id'];
	mysql_query($quer, $conn);

В чем может быть проблема?
  • Вопрос задан
  • 321 просмотр
Решения вопроса 1
thewind
@thewind
php программист, front / backend developer
Наверное дело в синтаксисе запроса и внутреннем парсинге mysql. Обратите внимание - в запросе insert вы вставляете артикул как строку в кавычках, а в запросе update - уже как число, без кавычек.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы