使用PHP添加sqlite条目

时间:2017-06-27 06:14:18

标签: php sqlite

我在这里运行一个简单的代码,在sqlite表中插入一组条目。

class MyDB extends SQLite3
{

        function __construct()
        {
                $this->open('new_test.db');
        }
}

        echo "opened database succesfully";

$db = new MyDB();
$db->exec("INSERT INTO RECORDSS(ID,NAME,DEVICE,PROJECT,IP,COMMENT) VALUES('$id','$name','$device','$project','$ip','$comment');");
 $ret = $db->exec($sql);
   if(!$ret) {
        echo "No error in if statement";
      echo $db->lastErrorMsg();

程序执行没有任何错误。但是当我打开数据库时。我看到表中没有条目。 我在这里做错了什么?

这是我查看表格的代码。

   class MyDB extends SQLite3 {
      function __construct() {
         $this->open('new_test.db');
      }
   }

   $db = new MyDB();
 $sql =<<<EOF
      SELECT * from RECORDSS;
EOF;

   $ret = $db->query($sql);
echo "<table style='width:100%'>
<tr>
        <th> ID </th>
        <th> NAME </th>
        <th> DEVICE </th>
        <th>PROJECT </th>
        <th>IP</th>
        <th>COMMENT</th>
    </tr>";

    while($row = $ret->fetchArray(SQLITE3_ASSOC))
    {
            echo "<tr>";
                    echo "<td>" . $row['ID']. "</td>" ;
                    echo "<td>" . $row['NAME']. "</td>";
                    echo "<td>" . $row['DEVICE']. "</td>";
                    echo "<td>" . $row['PROJECT']. "</td>";
                    echo "<td>" . $row['IP']. "</td>";
                    echo "<td>" . $row['COMMENT']. "</td>";
            echo "</tr>";
    }
       echo "Operation done successfully";
       $db->close();
    echo "</table>"

我检查过的一些事情。

  1. 在具有可执行权限的同一目录中创建表和数据库。
  2. 尝试用python替换PHP函数,以达到同样的目的。
  3. 我是否必须在PHP,apache或sqlite Conf文件中明确更改某些内容?

    编辑: - 添加评论中提到的一些细节:

    SCRIPT: 使用<form action ="add_info.php" method="get">调用 表格包含:

    `Name
    <input type ="text" name ="name"/>
    <br/>
    Project
    <input type ="text" name ="device"/>
    <br/>
    `
    Not pasting all form fields to make it readable. They are similar.
    

    PHP将变量视为

    $name= $_GET['name']
    

    操作系统:Uuntu 16.04服务器

    FIle:所有脚本都存储在/ var / www / html

    我不完全了解&#39;文件系统&#39;

1 个答案:

答案 0 :(得分:0)

我得到了它的工作。 问题是由于文件权限和所有权。 apache进程由用户www-data运行。我的文件是在root下运行的。因此,给root的写权限没有帮助。 这就是我做的。 使用www-data将目录用户更改为chown -hR www-data /var/www/html。 获得对数据库和PHP文件的读写权限。

感谢所有有用的评论。