PDO在一个语句中绑定多个值

时间:2017-07-23 07:12:34

标签: php mysql pdo

我正在处理大量的SQL查询。虽然我还没有掌握PDO,但我希望能来这里寻求一些帮助,因为我之前的搜索在帮助方面没有提供太多帮助。我确实遇到过this link on SO,但似乎有点超出了我的工作范围

考虑以下代码,它100%有效;

public function composeMsg($userID, $toUser, $subject, $msg, $sentOn ){
        $db = DB::getInstance();
        $sql = "INSERT INTO messages (userID, fromID, subject, body, senton) values (:userID, :toUser, :subject, :msg, :sentOn )";
        $stmnt = $db->prepare($sql);
        //NOT EFFICIENT
        $stmnt->bindValue(':userID', $userID);
        $stmnt->bindValue(':toUser', $toUser);
        $stmnt->bindValue(':subject', $subject);
        $stmnt->bindValue(':msg', $msg);
        $stmnt->bindValue(':sentOn', $sentOn);

        $stmnt->execute();
        if($stmnt->rowCount() > 0){
            return true;
        }
        else{
            return false;
        }
    }//FUNCTION

我发现自己连续多次输入$stmnt->bindValue(':value', $value),如上面的代码所示我正在寻找PDO功能的构建或类似的东西,我可以利用它来避免所有的重复。

欢迎任何建议

1 个答案:

答案 0 :(得分:2)

将它们作为执行的一部分绑定...

   $stmnt->execute([':userID'=> $userID,
         ':toUser'=> $toUser,
         ':subject' => $subject,
         ':msg' => $msg,
         ':sentOn' => $sentOn]);