php-sqlite不存储数据


php sqlite not storing data

我正在试用带有php的sqlite。在服务器上,当我执行命令sqlite3时,它会显示版本和帮助选项,建议在那里安装sqlite。我的文件夹结构如下:/username/public_html/
现在,我使用位于/Username的sqlite3命令创建了一个名为"chatsuser.db"的数据库,其中包含一个表"Users"和两列"Username"answers"Password"然后,我使用WinSCP将数据库复制到我的windows文件夹中,然后将其复制回服务器:/username/public_html/(我知道将数据库文件保留在public_html中不是一个好主意,但我只是在尝试一个示例(。现在我有了以下php文件:
add.php:

<?php
$password = $_POST['password'];
$username = $_POST['username'];
$name_es = sqlite_escape_string($username);
$password_es = sqlite_escape_string($password);
if (!empty($username)) {
   $dbhandle = sqlite_open('chatuser.db', 0666, $error);
   if (!$dbhandle) die ($error);
   $stm = "INSERT INTO Users(Username, Password) VALUES('$name_es', '$password_es')";
   $ok = sqlite_exec($dbhandle, $stm, $error);
   if (!$ok) die("Error: $error");  
   else echo "Success";
}
?>

index.html:

<html>
<head>
<title>Login Trial</title>
</head>
<body style="font-size:12;font-family:verdana">
<form action="add.php" method="post">
<p>
Name: <input type="text" name="username"><br>
Password: <input type="text" name="password"><br><br>
</p>
<p>
<input type="submit">
</p>
</form>

</body>
</html>

单击提交按钮后,它会加载add.php,但不会向我显示成功消息或任何错误消息。我不知道为什么。另外,我还做了chatsuser.db的chmod777。这是我第一次介绍sqlite,任何帮助都会很棒。感谢

[已解决]发现问题,原因是版本不匹配。sqlite_open将不起作用。此解决方案的替代方案:错误:文件已加密或不是数据库

我的猜测是sqlite_open会触发一个致命错误,而您的PHP没有配置为显示这些错误。

试着把一个echo放在sqlite_open之前,一个放在后面——如果只回显第一个,你就知道问题出在哪里了

您可能想要在PHP中加载sqlite3模块。

-编辑-

实际上,这只适用于PHP 4,您可能不再使用它了。无论哪种方式,都要确保PHP输出错误(进入PHP.ini并将display_errors设置为On,将error_reporting设置为E_ALL(。