我正在使用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'];
?>