通过PHP将多个表单属性插入sqlite3 db

时间:2013-12-02 19:31:57

标签: php database forms sqlite

如果在其他地方被问到这个问题,我会把我弄坏,我环顾四周但却找不到我的情况。基本上我在服务器上创建并填充了一个sqlite3数据库,我试图创建一个连接到php文件的html表单,用户可以在其中输入一些数据然后插入到表中。

表单工作正常并且连接,问题在于PHP本身。

这是我的php文件的代码:

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

$title = $_POST['title']; 
$subtitle = $_POST['subtitle']; 
$latitude = $_POST['latitude']; 
$longitude = $_POST['longitude']; 

$sql = "INSERT INTO stop (title,subtitle,latitude,longitude) VALUES (:title,:subtitle,:latitude,:longitude)"; 
$q = $db->prepare($sql); 

$q->bindParam(':title',$title); 
$q->bindParam(':subtitle',$subtitle); 
$q->bindParam(':latitude',$latitude); 
$q->bindParam(':longitude',$longitude); 
$q->execute(); 

echo 'inserted 1 row'; 
} 
catch(PDOException $e){ 
    echo 'exception:' . $e->getMessage(); 
} 
?>

如您所见,表单提交了四个属性:标题,副标题,经度和纬度。然后将这些属性准备到查询中并在数据库上执行。代码在服务器上成功运行,甚至在插入行的回声中运行,但数据库没有显示任何更改。

非常感谢他们的帮助,一直坚持反对这一点。

谢谢你!

1 个答案:

答案 0 :(得分:0)

在问题明确print_r($q->errorInfo());之后添加$q->execute();后结果显示,数据库处于只读状态。在挖掘之后,我发现了PDO的一个细微差别,你必须拥有数据库和所有权限模式下的文件夹。一旦改变,一切都完美无缺!