У меня есть вставка:
$sql = 'INSERT into orders SET
fax_int_prefix = "'.$_SESSION['fax_int_prefix'].'",
fax_prefix = "'.$_SESSION['fax_prefix'].'",
fax_first = "'.$_SESSION['fax_first'].'",
fax_last = "'.$_SESSION['fax_last'];
Значение всех этих полей - то, что они - пробел прямо перед вставкой. Вот является пример одного из них мной echo'd незадолго до вставки:
$_SESSION[fax_prefix] =
По некоторым причинам это вставляет целое число 0 вместо пустого значения или пустого указателя, как это должно. Почему это вставляет 0 вместо пробелов в мой DB?
Проверьте структуру своей таблицы. Возможно, он не относится к типу char
или varchar
(или имеет значение по умолчанию, равное «0»). Для этого вы можете использовать phpmyadmin , SQLyog или другие программы администрирования MySql.
Изменить: Если вы хотите хранить целые числа, но у вас есть опция без значения , убедитесь, что тип допускает значение NULL. то есть: имя_столбца INT (n) ПО УМОЛЧАНИЮ NULL
Проверьте схему вашей базы данных. Скорее всего, это целочисленные поля или что-то подобное.
SHOW FIELDS FROM orders;
или
SHOW CREATE TABLE orders;
могут помочь. Кроме того, просто распечатать переменную - не лучшая проверка, лучше использовать var_dump().