Intereting Posts
как сделать сумму на строку в php? есть ли способ в PHP перезапустить цикл в foreach или изменить тестовое значение в коммутаторе? Друг друга в PHP / MySQL? Каков наилучший способ подключения / подключения базы данных к функции в PHP? Повторяющиеся повторения таблиц в PHP PHP Implode But Wrap Каждый элемент в цитатах PHP, как установить цвет для определенных ключевых слов (текст) в скребковых данных Как генерировать PDF-файлы _with_ utf-8 многобайтовых символов с использованием Zend Framework Как сохранить изображение, созданное pChart, в файл? Альтернатива PDF для динамически создаваемого документа с разрывами страниц PHPDoc: @return void необходимо? Регулярное выражение для поиска действительного имени файла Установка драйвера php datastax на ubuntu Извлеките значения из двух разных таблиц и поместите их в представление с помощью Laravel Строковая переменная Javascript, содержащая PHP-код

Вставить переменную NULL в базу данных

Я имею переменную, установленную в NULL, которую я пытаюсь вставить в базу данных, но по какой-то причине они продолжают поступать как «0». Im положительный, что столбец im пытается вставить в позволяет NULL и что по умолчанию установлено значение NULL. Вот мой код:

$insert = NULL; $query = mysql_query("INSERT INTO `table1` (column1) VALUES ('$insert')") or die(mysql_error()); 

Related of "Вставить переменную NULL в базу данных"

Предупреждение:

Пожалуйста, не используйте функции mysql_* для нового кода. Они больше не поддерживаются, и сообщество начинает процесс устаревания . Вместо этого вы должны узнать о подготовленных операторах и использовать либо PDO, либо MySQLi .

Если вы хотите, чтобы он был NULL (и вы действительно действительно хотите использовать mysqli_* ) в базе данных, вы можете сделать следующее:

 $insert = NULL; $query = mysql_query("INSERT INTO `table1` (column1) VALUES (" .(($insert===NULL)? "NULL": "'".mysql_real_escape_string($insert)."'"). ")") or die(mysql_error()); 

Но это может привести к гнусной инъекции SQL и не рекомендуется.

См. Таблицы Бобби


Итак: в целом вы должны использовать подготовленные заявления .

Вы можете использовать MySQLi так:

  $dbHandle = new mysqli(...); $query = "INSERT INTO `table1` (column1) VALUES (?)"; $statement = $dbHandle->prepare($query); if($statement){ $statement->bind_param('s', $insert); if(!$statement->execute()){ echo "Statement insert error: {$statement->error}"; } $statement->close(); } else { echo "Insert error: {$dbHandle->error}"; } 

Попробуйте это для статического запроса:

 $query = mysql_query("INSERT INTO `table1` (column1) VALUES (NULL)") or die(mysql_error()); 

Использование переменной:

 $insert= NULL; $insert = ($insert===NULL)? 'NULL' : "'$insert'"; mysql_query("INSERT INTO `table1` (column1) VALUES ($insert)") or die(mysql_error()); 

Попробуйте без кавычек;

 $query = mysql_query("INSERT INTO `table1` (`column1`) VALUES (".$insert.")") or die(mysql_error()); 

Запрос должен быть;

INSERT INTO table1 ( column1 ) VALUES (NULL);