INSERT到数据库无法通过PHP工作

时间:2013-08-24 19:26:48

标签: php sql forms sqlite

我的服务器上的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工作得很好,所以我看不出有什么问题。感谢

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分: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);