【问题标题】:php sqlite not storing dataphp sqlite不存储数据
【发布时间】:2011-12-01 03:30:59
【问题描述】:

我正在尝试使用 php 的 sqlite。在服务器上,当我执行命令 sqlite3 时,它会显示版本和帮助选项,建议在那里安装 sqlite。我的文件夹结构是这样的:/username/public_html/
现在我使用 /username 的 sqlite3 命令创建了一个名为“chatuser.db”的数据库,其中包含一个表“用户”和两列“用户名”和“密码” 然后,我使用 WinSCP 将 db 复制到我的 windows 文件夹,然后将其复制回此处的服务器:/username/public_html/(我知道将 db 文件保存在 public_html 中不是一个好主意,但我只是在尝试一个示例) .现在我有以下 php 文件:
添加.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,但不会显示成功消息或任何错误消息。我不知道为什么。作为补充说明,我也完成了 chatuser.db 的 chmod 777。这是我对 sqlite 的第一次介绍,任何帮助都会很棒。谢谢

[已解决] 发现问题,版本不匹配。 sqlite_open 将不起作用。此解决方案的替代方案: Error: file is encrypted or is not a database

【问题讨论】:

    标签: php sqlite


    【解决方案1】:

    我的猜测是sqlite_open 触发了一个致命错误,并且您的 PHP 未配置为显示它们。

    尝试在 sqlite_open 之前放置一个 echo 并在其后放置一个 - 如果只有第一个被回显,你就知道问题所在了。

    您可能希望在 PHP 中加载 sqlite3 模块。

    -编辑-

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

    【讨论】:

    • 奇怪的是,两个回声都不起作用。我将 echo 放置如下: echo "testing"; $dbhandle = sqlite_open('chatuser.db', 0666, $error);如果 (!$dbhandle) 死掉 ($error); echo "再次测试";
    • 哎呀,sqlite_escape_stringsqlite_open 之前被调用。尝试在此之前放置echo
    • 是的,现在第一个被调用但第二个没有。出了什么问题,我该如何解决。谢谢
    • 我强烈建议您更新您的服务器。自 2004 年发布的 PHP 5 以来,Sqlite 支持一直是默认的
    • 所以,我的脚本或我设置数据库的方式没有任何问题,可能是配置问题吧?谢谢
    猜你喜欢
    • 2016-10-10
    • 2021-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多