簡體   English   中英

通過表單將數據添加到PostgreSQL。 如果變量為null / empty,則添加失敗,如何防止這種情況?

[英]Adding data to PostgreSQL via form. Add fails if variable null/empty, how do I prevent this?

我正在通過PHP表單將數據添加到PostgreSQL數據庫。 感覺有點粗略。 我主要擔心的是; 如果變量為null / empty,則添加失敗。 我該如何預防?

簡化的代碼是這樣的:

$name = $_POST['name'];
$movie = $_POST['movie'];
$query = "INSERT INTO data.base(name, movie) VALUES('" . $name . "', '" . $movie . "')";
$result = pg_query($query);
if ( $result ) {
    echo 'Thanks';
} else {
    echo 'Error';
}

因此,如果$movie變量為null / empty,則整個添加操作將失敗。

我可以做這樣的事情:

$name = $_POST['name'];
if ( ! $name ) {
    $name = '0';
}

但是我寧願保持單元為空,而不是插入錯誤數據。

任何幫助將非常感激。

我的解決方案需要PHP 7+

如果您的namemovie列可以為空,並且devault值為null ,則可以執行以下操作:

$name = $_POST['name'] ?? null;
$movie = $_POST['movie'] ?? null;
$query = "INSERT INTO data.base(name, movie) VALUES('" . $name . "', '" . $movie . "')";
$result = pg_query($query);
if ( $result ) {
    echo 'Thanks';
} else {
    echo 'Error';
}

不幸的是,它將在您的表中為空行。

但是,如果您不希望出現垃圾行,請執行以下操作:

$name = $_POST['name'] ?? false;
$movie = $_POST['movie'] ?? false;

if ( $name and $movie ) {
    $query = "INSERT INTO data.base(name, movie) VALUES('" . $name . "', '" . $movie . "')";
    $result = pg_query($query);
    echo 'Thanks';
} else {
    echo 'Error';
}

我建議您轉義輸入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM