INSERT NULL в MySQL, если строка в PHP пуста после разнесения - PullRequest
0 голосов
/ 20 сентября 2018

В скрипте я получаю значение переменной с помощью запроса GET, и мне нужно разбить его на разделитель, но иногда часть строки пуста.Как мне объявить, что в запросе INSERT для вставки NULL, если строка пуста?

$statement = $db->prepare('insert into _table (column1, column2, etc.) values (?, ?, etc.)
if (isset($_GET['var']) || isset($_GET['var1'])) { 
$pieces=explode("delimeter", $var);
// $data = array($somevar, $someothervar, $pieces[0], pieces[1], etc.);
} else {
// other things to do with // $data = array($somevar, $someothervar, etc.);
}
$statement->execute($data);

Иногда бывает, что значение $iece [0], $iece [1] и т. Д. Равно "" (цитата исключена, просто для справки) или так сказать пустая.Как мне сделать так, чтобы он вставлял NULL в базу данных, если какие-либо разорванные фрагменты пусты?Не совсем уверен, где и как объявить проверку! Empty из-за isset.Текущий код вводит пробелы в строках таблицы вместо NULL для пустых разнесенных фрагментов.Обратите внимание, что взорванные части не всегда пусты, а иногда не все они пусты, иногда все пусты.Зависит от случая.:)

1 Ответ

0 голосов
/ 20 сентября 2018

Этот должен ответить на ваш вопрос.

Просто установите значение, которое вы хотите вставить, и установите значение NULL на null, например, $someVar = null;

В вашемНапример, вы можете проверить, являются ли какие-либо значения в вашем массиве пустой строкой, и заменить их на null

foreach ($data as $key => $value) { 
    if $value === "" {
        $data[$key] = null;
    }
}
...