我一直在努力创建一个项目,我需要将信息上传到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类型,因为我在数据库中将其声明为数字?如果是这样我该如何解决?
欣赏你的所有想法。
谢谢
答案 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();
}