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 に答える