PHP到sqlite3 - 无法上传

时间:2015-08-26 23:22:42

标签: php sqlite

我一直在努力创建一个项目,我需要将信息上传到sqlite3数据库。为此,我使用简单的PHP脚本。

我已经成功地将信息从PHP脚本上传到数据库,如下所示:

    <?php

    try
    {
    $db = new PDO('sqlite:mydatabase.db');

    $db->exec("INSERT INTO temps (zone,temperature) VALUES ('maia',77)");
    echo "Row Inserted\n";
    }
    catch(PDOException $e)
    {
            print $e->getMessage();
    }
    ?>

现在我正在努力用脚本做同样的事情:

<?php

        $data = htmlspecialchars($_GET["temp1"]);
        $file = "temps.txt";
        $current = file_get_contents($file);
        $current .= $data;
        file_put_contents($file, $current);

try
{
        $db = new PDO('sqlite:teste1.db');
        $db->exec('BEING;');
        $db->exec('INSERT INTO temps (temperature) VALUES ($temp1)');
        $db->exec('COMMIT;');
}
catch (PDOException $e) {
        echo 'Connection failed: ' . $e->getMessage();
}
?>

我的桌子&#34;临时&#34;有这样的架构:

CREATE TABLE temps (temperature NUMERIC);

是因为PHP中的var类型,因为我在数据库中将其声明为数字?如果是这样我该如何解决?

欣赏你的所有想法。

谢谢

1 个答案:

答案 0 :(得分:1)

您可能对prepapred statements和(命名|位置)参数感兴趣:

<?php
$temp1 = '1234';
try
{
    $db = new PDO('sqlite::memory:');
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $db->exec('CREATE TABLE temps (temperature NUMERIC)');

    $stmt = $db->prepare('INSERT INTO temps (temperature) VALUES (?)');
    $stmt->execute( array($temp1) );
}
catch (PDOException $e) {
    echo $e->getMessage();
}