递增 PDO 变量是必需的


Necessary to increment PDO variables

我一直找不到任何明确回答这个问题的东西,并且已经想知道了一段时间。对不起,如果这是一个新手问题。

在以下情况下,我是否必须增加或更改我的 PDO 变量。如果我有两个这样的查询:

$stmt     = $dbh->prepare('
    INSERT INTO messages 
        (content) 
    VALUES 
        (:content)
        ');
$stmt->bindValue('content', $content);
$stmt->execute();
$msg_id  = $dbh->lastInsertId();

.....

$stmt1     = $dbh->prepare('
    INSERT INTO something else 
        (stuff) 
    VALUES 
        (:stuff)
        ');
$stmt1->bindValue('stuff', $stuff);
$stmt1->execute();
$var_id  = $dbh->lastInsertId();

如果我在两个上都使用了$stmt,而在第二个上使用$stmt,这被认为是不好的做法,或者一旦我有了 $msg_id,我可以重用$stmt吗?作为PDO的新手,重复变量会很方便,但我不想引入以后需要修复的错误。

从技术上讲,一旦你完成了第一个查询的$stmt,你就可以在另一个语句/查询中重用该 PHP 变量:没有什么能阻止你这样做。


尽管如此,我喜欢有两个具有明确名称的变量的想法 - 这意味着比$stmt$stmt1更具信息性的东西。

例如,如果你有两个名为 $stmtSaveMessage$stmtSaveUser 的 PHP 变量,每次使用这些变量之一时,你都会立即知道代码的作用:你不必考虑$stmt现在是否指向保存消息的语句,或者它是否被覆盖指向保存其他内容的语句。


就其本身而言,$stmt通常表示您正在使用一个语句,该语句执行与数据库相关的操作;但是使用更重要的变量名将立即使您的代码更易于阅读,更易于理解和维护 - 而且,在编程时,我们倾向于花费更多的时间来维护旧代码而不是编写新代码......

我认为重用同一个变量是个好主意。它不那么混乱,并节省了一点内存。

真的,这完全取决于你,但我个人认为为每个查询创建一个新的资源句柄是一种不好的做法,除非有特定的原因挂在旧的资源句柄上。