1

我的服务器上的 php 文件中有以下代码,它应该从 HTML 表单中获取简单的 POST 输入并将其存储在数据库中。

$var_name = $_POST[post_name];
$var_email = $_POST[post_email];
$var_id = intval($_POST[post_id]);
echo "Name=".$var_name.", email=".$var_email.", id=".$var_id;

$status = $db->query("insert into names (name, email, id) values ('$var_name', '$var_email', $var_id)");
var_dump($status);

所有的 POST 变量都是正确的,它们都存储了我在表单中输入的数据,并且db设置正确,因为运行以下代码按预期工作,打印出数据库中的每一行:

$results = $db->query('SELECT * FROM names');
while ($name = $results->fetchArray()) 
    echo $name[0]."\n";

发生的事情是,var_dump($status)证明这$status是错误的。怎么可能是假的?我究竟做错了什么?将查询行插入 sqlite3 CLI 效果很好,所以我看不出有什么问题。谢谢

4

2 回答 2

1

您的数据库可能存在权限问题,因为代码看起来应该可以工作。检查您是否具有数据库文件的读/写权限。

此外,您应该确保包含数据库文件的文件夹也具有读/写权限,因为文件夹和文件都必须是可写的,以便 INSERT 工作

于 2013-08-25T21:15:49.683 回答
0

我看到你忘记了代码中的一些引号..开始尝试这个:

$var_name = $_POST['post_name'];
$var_email = $_POST['post_email'];
$var_id = intval($_POST['post_id']);
echo "Name=".$var_name.", email=".$var_email.", id=".$var_id;

$status = $db->query("insert into names (name, email, id) values ('$var_name', '$var_email', $var_id)");
var_dump($status);
于 2013-08-24T19:32:51.220 回答