我想知道是否有更好的想法来解决下面的问题,
我有一个带有许多输入字段的表单,例如,
<input name="pg_title" type="text" value="" />
<input name="pg_subtitle" type="text" value="" />
<input name="pg_description" type="text" value="" />
<input name="pg_backdate" type="text" value="" />
etc
但有时我的表单中不需要上面的某些输入字段,例如,我只需要数据库注入的页面标题,
<input name="pg_title" type="text" value="" />
etc
我还有另一个 php 页面来处理$_POST
data,
$pg_title = null;
$pg_subtitle = null;
$pg_description = null;
$pg_backdate = null;
if(isset($_POST['pg_title']) && !empty($_POST['pg_title']) ) $pg_title = $_POST['pg_title'];
if(isset($_POST['pg_subtitle']) && !empty($_POST['pg_subtitle']) ) $pg_subtitle = $_POST['pg_subtitle'];
if(isset($_POST['pg_description']) && !empty($_POST['pg_description']) ) $pg_description = $_POST['pg_description'];
if(isset($_POST['pg_backdate']) && !empty($_POST['pg_backdate']) ) $pg_backdate = $_POST['pg_backdate'];
每次我都必须检查是否$_POST
设置某个输入字段的not empty
,否则它的变量将被设置为null
,这样我就不会在数据库中注入空白空间。
我找到了isset
and !empty
当我要处理一长串变量时,if 条件中的内容非常重复。
是否有任何默认的 PHP 函数'shorten'上面的过程?或者我是否必须编写一个用户定义的函数来处理这个问题?
或者也许还有另一种方法可以做到这一点?
只是我的 php 页面中处理 $_POST 数据的一些额外代码,
$sql = "
UPDATE root_pages
SET
pg_url = ?,
pg_title = ?,
pg_subtitle = ?,
pg_backdate = ?,
pg_description = ?,
...
updated_by = ?
WHERE pg_id = ?
";
$result = $connection->run_query($sql,array(
$pg_url,
$pg_title,
$pg_subtitle,
$pg_backdate,
$pg_description,
...
$pg_id
));
如你所见$pg_subtitle, $pg_backdate, $pg_description, etc
总是出现在我的查询中。所以如果我得到$pg_subtitle = ''
代替$pg_subtitle = null
当其中没有数据时,我的数据库记录将为该列留出一个空白空间。