35

mySQLデータベースに挿入しようとしています。最初の列は「id」列です。auto_incrementフィールドなので、空白のままにしました。なんらかの理由で挿入できず、下記のエラーが発生します。私はこれでどんな助けにも感謝します。

挿入しようとすると、次のエラーが発生します。

Incorrect integer value: '' for column 'id' at row 1

私の質問

$insertQuery = "INSERT INTO workorders VALUES('', '$priority', '$requestType', '$purchaseOrder', '$nte', '$jobSiteNumber')";
4

6 に答える 6

35

これはおそらく、あなたidAUTO_INCREMENT整数であり、文字列を送信しようとしていることを意味します。列リストを指定し、それを省略してくださいINSERT

INSERT INTO workorders (column1, column2) VALUES ($column1, $column2)
于 2013-02-07T23:15:44.410 に答える
32

MySqlにフィールドのシーケンス番号を生成させるには、次のAUTO_INCREMENT3つのオプションがあります。

  1. list a column listを指定し、njkが提案したようにauto_incremented列を省略します。それが最善のアプローチです。コメントを参照してください。
  2. NULLを明示的に割り当てます
  3. 明示的に0を割り当てる

3.6.9。AUTO_INCREMENTの使用

... AUTO_INCREMENT列に値が指定されていないため、MySQLはシーケンス番号を自動的に割り当てました。列にNULLまたは0を明示的に割り当てて、シーケンス番号を生成することもできます。

これらの3つのステートメントは、同じ結果を生成します。

$insertQuery = "INSERT INTO workorders (`priority`, `request_type`) VALUES('$priority', '$requestType', ...)";
$insertQuery = "INSERT INTO workorders VALUES(NULL, '$priority', ...)";
$insertQuery = "INSERT INTO workorders VALUES(0, '$priority', ...";
于 2013-02-07T23:24:57.820 に答える
24

my.cfを編集して、元のsql_modeにコメントを付け、sql_mode=""を追加してみてください。

vi /etc/mysql/my.cnf

sql_mode = ""

保存して終了します...

service mysql restart
于 2018-11-05T12:45:19.667 に答える
2

これは、データ送信列タイプが整数であり、それに文字列値を送信しているためです。

だから、次の方法が私のために働いた。これで試してみてください。

$insertQuery = "INSERT INTO workorders VALUES (
                    null,
                    '$priority',
                    '$requestType',
                    '$purchaseOrder',
                    '$nte',
                    '$jobSiteNumber'
                )";

使用しないでください'null'。一重引用符なしで使用しnullてください。

于 2017-11-28T07:06:11.643 に答える
2

の同じエラーについてwamp/phpmyadmin、私は編集my.iniし、元のコメントを付けました:

;sql-mode= "STRICT_ALL_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ZERO_DATE,NO_ZERO_IN_DATE,NO_AUTO_CREATE_USER"

と追加しましsql_mode = ""た。

于 2019-05-06T07:50:45.350 に答える
0

phpMyAdminがある場合は、変数に移動してSQLモード、変数を探し、編集して変数の内容をすべて削除してから保存します。これで、コードに触れたくない人にとってもこの問題は解決するはずです。

于 2021-08-26T15:18:16.440 に答える