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