PHP-在插入/更新之前声明每个变量,或者将每个变量放入插入/更新中的引号中


PHP - declaring each variable before insert / update or placing each variable in the insert / update in quotes?

我在系统中包含了error_reporting(E_ALL)。我想写一个更好的代码。我想知道这两种选择。

我应该在插入/更新之前声明所有变量吗(我有很多)?

$name = isset($_POST['name']) ? $_POST['name'] : '';
...
$insert = $dbh->prepare('INSERT INTO table_name (name, ...) VALUES (?, ...)');
$insert->execute(array($name, ...));

或者我可以引用插入/更新中的每个变量。

$name = $_POST['name'];
...
$insert = $dbh->prepare('INSERT INTO table_name (name, ...) VALUES (?, ...)');
$insert->execute(array("$name", ...));

当然,在第二个选项中,我会收到未声明变量的通知,但我会为三元检查保存负载(我在插入/更新每个变量时添加引号,但与三元检查相比,这是较小的负载)。如果变量未声明,则使用此引号插入空字符串。在设置了我只是插入/更新的变量之后,我不会将其用于其他任何事情。

我想第一个选项比较好,但有点慢。我只是想补充一点意见。

当我们不需要的时候,为什么要发送一个常规查询

实际上,当你没有$_POST['s_id']时,你不需要发送查询,所以你可以这样做,你永远不会收到通知消息,你的查询会被优化。

<?php 
if(isset($_POST['s_id'])) { //instead of $s_id = isset($_POST['s_id']) ? $_POST['s_id'] : '';
// your query code here 
}