我在这里运行一个简单的代码,在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>"
我检查过的一些事情。
我是否必须在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;
答案 0 :(得分:0)
我得到了它的工作。
问题是由于文件权限和所有权。
apache进程由用户www-data
运行。我的文件是在root
下运行的。因此,给root的写权限没有帮助。
这就是我做的。
使用www-data
将目录用户更改为chown -hR www-data /var/www/html
。
获得对数据库和PHP文件的读写权限。
感谢所有有用的评论。