我在我的系统中包含了error_reporting(E_ALL)。我想写一个更好的代码。 我想知道这两个选项。PHP - 在插入/更新之前声明每个变量,或者将每个变量插入/插入到引号中?
我应该在插入/更新(我有很多它)之前声明绝对所有变量?
$name = isset($_POST['name']) ? $_POST['name'] : '';
...
$insert = $dbh->prepare('INSERT INTO table_name (name, ...) VALUES (?, ...)');
$insert->execute(array($name, ...));
或者我可以在insert/update中引用每个变量。
$name = $_POST['name'];
...
$insert = $dbh->prepare('INSERT INTO table_name (name, ...) VALUES (?, ...)');
$insert->execute(array("$name", ...));
当然了第二个选项我接收对未声明的变量的通知,但我保存的三元检查(I在每个变量的插入/更新加引号,但与三元相比,这是更小的负载的负载检查)。如果变量未声明,用这个引号插入空字符串。 在设置刚插入/更新的变量之后,我不会将其用于其他任何事情。
我想第一个选择更好,但有点慢。 我只是想要一个额外的意见。
三元检查没有强加显着的性能损失,它总是很好地初始化变量。如果设置了POST变量,您可以随时设置默认值并覆盖。 – DevZer0
如果您的ID必须填写,请首先检查您的数据库方案,不要以元组中的空值结束。 –
我投票保留开放,因为用户正在询问如何通过error_reporting(E_ALL)消除错误。 –