无法通过PHP插入数据库

无法通过PHP插入数据库,php,sql,forms,sqlite,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 int

我的服务器上的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\u dump($status)
证明了
$status
是错误的。这怎么可能是假的?我做错了什么?将查询行插入sqlite3 CLI非常有效,因此我看不出有什么问题。谢谢

我发现您忘记了代码中的一些引号。。开始尝试以下方法:

$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);

我发现你忘记了代码中的一些引号。。开始尝试以下方法:

$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);

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


此外,您还应确保包含数据库文件的文件夹也具有读/写权限,因为文件夹和文件都必须是可写的,插入才能正常工作。您的数据库可能存在权限问题,因为代码看起来应该正常工作。检查您是否对数据库文件具有读/写权限


此外,您还应确保包含数据库文件的文件夹也具有读/写权限,因为文件夹和文件都必须是可写的,插入才能工作

将您的查询放入变量中并将其变量转储$sql=“在名称(名称、电子邮件、id)中插入值(“$var\u name”、“$var\u email”、$var\u id)”。在查询方法中使用相同的变量。通过这种方式,您可以确保查询是正确的。您的数据库的错误报告说了什么?如果您使用的是PDO,那么您可以通过
var_dump($query->ErrorInfo())访问它。
永远不要编写这样危险的代码。使用第一天准备好的语句,不要回头看:查询是:>。。这并没有什么错,但它仍然告诉我$status是false…将您的查询放在一个变量中,然后var_转储它$sql=“在名称(名称、电子邮件、id)中插入值(“$var\u name”、“$var\u email”、$var\u id)”。在查询方法中使用相同的变量。通过这种方式,您可以确保查询是正确的。您的数据库的错误报告说了什么?如果您使用的是PDO,那么您可以通过
var_dump($query->ErrorInfo())访问它。
永远不要编写这样危险的代码。使用第一天准备好的语句,不要回头看:查询是:>。。这没什么错,但它仍然告诉我$status是假的。。。