【问题标题】:Inserting multiple form attributes into sqlite3 db through PHP通过PHP将多个表单属性插入sqlite3 db
【发布时间】:2013-12-18 15:14:00
【问题描述】:

如果在其他地方有人问过这个问题,我会很遗憾,我环顾四周,但找不到确切的情况。基本上我在服务器上创建并填充了一个 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(); 
} 
?>

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

非常感谢您的帮助,我一直在努力解决这个问题。

谢谢你!

【问题讨论】:

  • PDO 默认不抛出异常。尝试在$q-&gt;execute(); 之后添加print_r($q-&gt;errorInfo()); 并将结果添加到您的问题中。
  • 您先生帮我找到了问题!谢谢狗!

标签: php database forms sqlite


【解决方案1】:

$q-&gt;execute(); 之后添加print_r($q-&gt;errorInfo()); 后发现问题很明显,即数据库处于只读状态。在四处挖掘之后,我发现了 PDO 的细微差别,即您必须在所有权限模式下同时拥有数据库和它所在的文件夹。更改后一切正常!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-16
    • 2011-01-16
    • 1970-01-01
    • 2019-01-30
    • 2018-07-30
    • 1970-01-01
    • 2021-09-23
    • 2015-08-25
    相关资源
    最近更新 更多