尝试通过PDO在MySQL数据库中插入记录会导致插入两条记录

时间:2016-11-03 14:27:11

标签: php mysql pdo

我正在使用PDO将记录插入到MySQL数据库中,但是它插入了重复记录,我无法弄清楚为什么要这样做,并且想知道是否有人可以帮助我。我从二进制文件中读取数据。数据库表有五列:ID,日期戳,functionName,realWebGLData,imagWebGLData

webGLData是大blob,在下面的示例中,我只读取了真实的数据文件,只插入了realWebGLData blob,但是当我加载所有列时它也复制了记录。当我检查数据库时,我有两条相同数据的记录(不同的自动增量ID),时间戳几乎是完全一致的。

从文件记录的前512个字节中提取functionName。这是我将blob插入数据库的功能:

public function insertBlob($filePath) {

        $blob = fopen($filePath, 'rb');
        if(!$blob)
          echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
        $theFunctionName=fread($blob,512);

        $sql = "INSERT INTO functiondatabase(functionName,realWebGLData)
                VALUES(:functionName,:realWebGLData)";

        $stmt = $this->pdo->prepare($sql);

        $stmt->bindValue(':functionName', $theFunctionName,PDO::PARAM_STR);
        $stmt->bindValue(':realWebGLData', $blob, PDO::PARAM_LOB);

        $stmt->execute();
    }

这是调用insert方法的PHP文件:

<?php


include 'algebraicFunctionBlobClass.php';

$blobObj = new algebraicFunctionBlob();


// store blob in database
 $blobObj->insertBlob('RealgebraicBlob.bin');

// comment out the echo for testing
//echo $a['realWebGLData'];
?>

0 个答案:

没有答案