必须增加PDO变量

时间:2012-05-18 16:29:28

标签: php pdo

我一直无法找到任何明确回答这个问题并且一直想知道的事情。对不起,如果是新手问题。

我是否必须在以下场景中增加或更改我的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的新手,重复变量会很方便,但我不想引入需要稍后修复的错误。

2 个答案:

答案 0 :(得分:2)

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


不过,我喜欢将两个变量与显式名称相提并论 - 这意味着比$stmt$stmt1更具信息性。

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


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

答案 1 :(得分:1)

我认为重用相同的变量是个好主意。它不那么容易混淆,节省了一点记忆。

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