0

私はWampサーバーを実行していて、一連のhtml Webページを作成しました。ユーザーが入力したデータは、PHPスクリプトを介してSQLデータベースに送信されます。を使用してデータベーステーブルを作成しましたId. set to INT auto increment Crime. and Suspect. set as VARCHAR(40)。データベースに接続できますが、挿入しようとするとエラーが発生します。

'挿入の問題:SQL構文にエラーがあります。'case(Id、Case、Suspect)VALUES(' NULL'、' test'、' test12')'の1行目で使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

だから私は挿入機能の問題を知っていますが、それを修正することはできません!

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$db = 'fid';

$case = (isset($_POST['case'])? $_POST['case']:"None");
$suspect= (isset($_POST['suspect'])? $_POST['suspect']:"None");

$conn = mysql_connect($dbhost,$dbuser,$dbpass);
if (!$conn)
die('Could not connect: ' . mysql_error());
mysql_select_db($db);
mysql_query("INSERT INTO case 
(Id, Case, Suspect) VALUES('NULL', '$case', '$suspect') ") 
or die(' Problem with insert: ' . mysql_error());  
echo 'Connected successfully';
mysql_close($conn);
?>
4

1 に答える 1

2

case予約キーワードです。テーブルとcolumnjという名前caseを付ける場合は、次のようにチェックマークを付ける必要があります。

INSERT INTO `case` (Id, `Case`, Suspect) VALUES('NULL', '$case', '$suspect')

また、 新しいコードでは関数を使用しないでくださいmysql_*。それらはもはや維持されておらず、公式に非推奨になっています。赤いボックスが表示されますか?代わりにプリペアドステートメントについて学び、 PDOまたはMySQLiを使用してください-この記事はどちらを決定するのに役立ちます。PDOを選択した場合は、ここに優れたチュートリアルがあります。

于 2013-03-17T17:48:53.393 に答える