php + sqllite3:有时(少数)错误:警告:SQLite3 :: exec():near ...语法错误

时间:2016-09-30 13:23:46

标签: php sqlite

我有以下问题:我有一个包含大约10200个条目的数组。 我有一个循环,我将数组中的一个条目写入变量,而不是将变量中的值插入到一个新的干净的SQLite数据库中。 问题是:有0.05%的可能性,它不会起作用,因此有100000个条目在dB中,200个缺失或不完整。 :(

//write the datas from the array into Variables:
foreach ($followers as $follower) {
    $usernameId = $follower->getUsernameId();
    $username = $follower->getUsername();
    $full_name = $follower->getFullName();
    $ProfilPicUrl = $follower->getProfilePicUrl();
    $is_private = $follower->isPrivate();
    $time = time();

    $sql_insert_users =<<<EOF
      INSERT INTO users (
        user_id,
        username,
        full_name,
        profile_picture,
        is_private,
        is_follower,
        followed_on,
        updated_on)

   VALUES ('$usernameId', '$username', '$full_name', '$ProfilPicUrl', '$is_private', 1, '$time', '$time');
EOF;

//write all in dB:
$ret = $db->exec($sql_insert_users);
 if(!$ret){
    echo $db->lastErrorMsg();
    echo "\n". $usernameId. " - ". $username. "\n"; //show me the ID and username, if it fails!

} else {
   //echo "Records created successfully\n";
}
}

错误日志如下所示:

Warning: SQLite3::exec(): near "m": syntax error in /Users/.../Sql_db_test.php on line 316
near "m": syntax error
1837386174 - madleen_official_

Warning: SQLite3::exec(): near "MD": syntax error in /Users/.../Sql_db_test.php on line 316
near "MD": syntax error
1402422812 - itz_finnest

由于我有正确的变量输出(例如1402422812 - itz_finnest),我真的不知道,问题是什么。

编辑1

根据@Alex K的建议,我现在正在准备。这有帮助。我现在没有收到任何错误消息,但仍有一个问题,即coloumn&#34;用户名&#34;中有几百个条目。只是&#34; 0&#34;实际名称的instaed。我用echo来查看,如果数组有问题,但它显示了一个实际的名字,而不是&#34; 0&#34;就像它写在数据库中一样。

$stmt = $db->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);

// eine Zeile einfügen
$name = 'one';
$value = 1;
$stmt->execute();

// eine weitere Zeile mit anderen Werten einfügen
$name = 'two';
$value = 2;
$stmt->execute();

这是我正在使用的形式,但是在循环中。

0 个答案:

没有答案