HTML表单名称到PHP PDO语句

时间:2013-07-02 01:39:51

标签: php html pdo

我想只更改一个名称,或添加一个表单字段,我必须在9个不同的地方进行。有一个更好的方法吗?我想知道,如果有更好的方法,那就是我做了很多工作。

下面是我文件中代码的代码片段。代码只是一个片段,所以我知道它不完整。

HTML表单

<p>
<label for="fName">First Name</label>
<input id="fName" name="fName" class="required" placeholder="As it appears on your passport" />
<label for="mName">Middle Name</label>
<input id="mName" name="mName" placeholder="As it appears on your passport" />
<label for="lName">Last Name</label>
<input id="lName" name="lName" class="required" placeholder="As it appears on your        passport" />
</p>

PHP PDO声明

$fName = trim($_REQUEST['fName']);
$mName = trim($_REQUEST['mName']);
$lName = trim($_REQUEST['lName']);

$query = $db->prepare("INSERT INTO mform(fname, mname, lname,

..."VALUES(:fname, :mname, :lname,



$query->execute(array(
':fname' => isset($fName) ? $fName : null,
':mname' => isset($mName) ? $mName : null,
':lname' => isset($lName) ? $lName : null,

1 个答案:

答案 0 :(得分:0)

不是一个完整的答案,但是你的代码中有几点可以简化而无需任何额外的“框架”代码,只需要通过逻辑思考。

  • 任何未设置的变量都会自动解释为NULL,因此isset($fName) ? $fName : null有点多余
  • 在您的清理代码中,无论如何都要定义每个变量(例如$fName = trim($_REQUEST['fName'])),因此它们永远不会被设置(它们可能是空字符串,但这是不同的)
  • 如果变量 {/ 1}},您的卫生处理代码就会知道这一点,并且可以明确指定值而不是保留变量未设置
  • 鉴于上述情况,您的消毒可以建立一个消毒值的关联数组,而不是使用单独的变量
  • 由于PDO NULL了解带或不带前导execute的密钥,您可以直接使用此数组将值替换为准备好的查询

: