0

そのため、PHP では MySQL クエリで NOW() を使用できず、「致命的なエラー: 未定義の関数 now() への呼び出し」と表示されます。何が間違っていたのかわかりません。見つかったものはすべて、文字列で正常に機能しています。テーブル 'news' のテーブル構造: |ID(int, auto-increment)|date(date)|content(text)|

$content = $_POST['content'];
$dbc = mysqli_connect(MOTD_DB_HOST, MOTD_DB_USER, MOTD_DB_PASS, MOTD_DB_NAME);
$query = "INSERT INTO news VALUES (0, NOW(), '$content')";
mysqli_query($dbc, $query);

[編集] 興味深いことに、情報がデータベースに追加されたようです。クエリは実行されますが、スクリプトがエラーで終了します。

[編集2]そうそう、スタックオーバーフローは初めてです。質問は回答済みです。これを回答済みとしてマークする方法がわかりません...

4

2 に答える 2

2

将来のためにこれを読んでください:PHPでSQLインジェクションを防ぐにはどうすればよいですか?

現在の問題については、これを試してください:

$q = mysqli_prepare($dbc, 'INSERT INTO news VALUES (0, NOW(), ?)');
mysqli_stmt_bind_param($q, 's', $content);
mysqli_stmt_execute($q);

NOW()内部で解釈されるべきではないため、コードのどこかで関数"を呼び出す必要があります。now()そのどこかは、エラー メッセージに表示される行番号です。

于 2013-11-09T22:45:57.080 に答える
-5

値を挿入するフィールドを指定していません。試す:

$query = "INSERT INTO news (id, time, content) VALUES (0, NOW(), '$content')";

于 2013-11-09T22:44:47.380 に答える