1

私はphpを介してデータベースにデータを挿入しようとしています..十分に簡単です(私は思った)。何が間違っているのか理解できません。これが私のコードです:

$DB_HostName = "localhost:8888";
$DB_Name = "Sample";
$DB_User = "root";
$DB_Pass = "root";
$DB_Table = "Check";

$con = mysql_connect($DB_HostName,$DB_User,$DB_Pass) or die(mysql_error()); 
mysql_select_db($DB_Name,$con) or die(mysql_error()); 


$sql =  "INSERT INTO $DB_Table (name) VALUES ('Sally') ";
mysql_query($sql) or die ("Error with Result");

mysql_close($con);  

「エラーと結果」というエラーが表示されます。これは、データベースに正しく接続している必要があり、最後の部分を除いてすべてが正しく機能していることを意味します。何が欠けていますか?(msql_error())と言うと、$sqlをチェックするように指示されます。何を間違って入力しているのかわかりません。

4

2 に答える 2

4

バッククォートでデータベース名をエスケープします

$sql =  "INSERT INTO `$DB_Table` (name) VALUES ('Sally') ";

また

$sql =  "INSERT INTO `" . $DB_Table . "` (name) VALUES ('Sally') ";

CHECKは MySQL の予約済みキーワードです。

于 2012-11-20T03:27:19.353 に答える
0

私はこれを十分に強調することはできません.mysql_関数を使用しないでください.その時間は過ぎました. mysqliまたはPDOを使用します。

SQL クエリの何が問題なのかを確認する簡単な方法は、die ステートメントの最後にエラー フラグを追加することです。mysql_query($sql) or die ("Error with Result<br>".mysql_error());

あなたの場合check、列に配置できる値の範囲を制限するために使用される制約であることがわかります。「`」を使用してテーブルであることを識別する必要があります。

$sql =  "INSERT INTO `$DB_Table` (name) VALUES ('Sally') ";
于 2012-11-20T03:33:00.007 に答える