[英]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+ 。
如果您的name
和movie
列可以為空,並且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.