为什么有时候只插入一部分记录?

时间:2014-05-17 17:34:38

标签: php mysql database pdo

我遇到的问题偶尔(每8个中有1个)插入数据库,(fileLocation)的字符串值将不完整。所以例如..

应该将“filecomplete.mp4”作为“filecomple”插入。

以前有没有人经历过这个问题,或者对问题是什么有任何想法?

这是我的插入声明。

public function addNewGame($gameID, $receiverID, $senderID, $gameTrack, $fileLocation){

        $this->gameid = $gameID;
        $this->receiverid = $receiverID;
        $this->senderid = $senderID;
        $this->gameTrack = $gameTrack;
        $this->filelocation = $fileLocation;

        $SQUERY = "SELECT GameId FROM ActiveGames WHERE GameId = :gameid";

        try{

            $stamt = $this->connection->prepare($SQUERY);

            if ($stamt === false) {
                throw new Exception($this->connection->error);
            }

            $stamt->bindValue(':gameid', $this->gameid, PDO::PARAM_INT);
            $stamt->execute();

            $result = $stamt->fetchAll();
            $resultCount = count($result);

            if($resultCount > 0){

                echo "existing record";

            } else{

                $QUERY = "INSERT INTO ActiveGames (GameId,
                  ReceiverId,
                  SenderId,
                  GameTrack,
                  FileLocation)

                  VALUES (

                  :gameid,
                  :receiverid,
                  :senderid,
                  :gametrack,
                  :filelocation)";

                try{

                    $stmt = $this->connection->prepare($QUERY);

                    if ($stmt === false) {
                        throw new Exception($this->connection->error);
                    }

                    $stmt->bindValue(':gameid', $this->gameid, PDO::PARAM_INT);
                    $stmt->bindValue(':receiverid', $this->receiverid, PDO::PARAM_INT);
                    $stmt->bindValue(':senderid', $this->senderid, PDO::PARAM_INT);
                    $stmt->bindValue(':gametrack', $this->gameTrack, PDO::PARAM_STR);
                    $stmt->bindValue(':filelocation', $this->filelocation, PDO::PARAM_STR);

                    $stmt->execute();

                }
                catch(PDOException $e) {

                    print "Error!: " . $e->getMessage() . "<br/>";
                    die();
                }

            }

        }
        catch(PDOException $e){

            print "Error!: " . $e->getMessage() . "<br/>";
            die();
        }
    }              

0 个答案:

没有答案