1

シンプルな MySQL コードを使用して、auto_increment ID を持つフォームからデータを挿入しています。ローカル ホストでは正常に動作しますが、サーバーでは動作しません。

これは私が使用しているコードです

 $myvar=$_POST['var'];
 //Insert data into mysql table
$sql="INSERT INTO mytable(id,myvar) VALUES ('','$myvar')";

ローカル ホストでは phpmyadmin データがテーブルに挿入されますが、サーバーでは phpmyadmin データはテーブルに挿入されません。私のローカルホストではXAMPP、IIS サーバーで phpmyadmin を使用しています。ID が自動インクリメントで自動的に挿入されるように、サーバー上の phpmyadmin でどのような設定を行う必要がmysql_insert_id()あります。XAMPPこのタイプのコードを簡単に取ることができる のと同じ設定が必要です。

4

5 に答える 5

7

自動インクリメント ID に '' を挿入します。他のフィールドを挿入するだけで、MySQL が自動インクリメント カラムを処理します。

$sql="INSERT INTO mytable(id,myvar) VALUES ('','$myvar')";

する必要があります

$sql="INSERT INTO mytable(myvar) VALUES ('$myvar')";
于 2013-07-30T06:33:27.987 に答える
1

テーブル内のすべての行の最後の行が必要な場合は、最終的にMAX(id)が正解です。:) すこし。

SELECT fields FROM mytable BY id DESC LIMIT 1;

最後の ID を取得し、それを 1 にインクリメントします // この値を挿入ステートメントの ID に追加します

または、自動インクリメント列がある場合は、それをに変更します

$sql="INSERT INTO mytable(id,myvar) VALUES ('','$myvar')";

$sql="INSERT INTO mytable(myvar) VALUES ('$myvar')";
于 2013-07-30T06:35:31.650 に答える
0

自動インクリメントはID自体を挿入するため、コードを介して渡す必要はありません

$sql="INSERT INTO mytable(myvar) VALUES ('$myvar')";

または、これを行うことができます

$sql="INSERT INTO mytable(id,myvar) VALUES (NULL,'$myvar')";

何らかの理由で id を手動で挿入したい場合

$sql="INSERT INTO mytable(id,myvar) VALUES (10,'$myvar')";
于 2013-07-30T06:35:16.610 に答える
0

最初に、クエリを適用してテーブルの構造プロパティを確認します。

desc mytable (または) show create table mytable.

列 ID に自動インクリメント プロパティが設定されていることを確認してください。

はいの場合、挿入クエリで id を渡す必要はありません。

クエリを次のように書くだけです:-

$sql="INSERT INTO mytable(myvar) 値 ('$myvar')";

于 2013-07-30T06:39:32.457 に答える