error: 1366 Incorrect integer value:

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Hanza
Člen | 4
+
0
-

Dobrý den,
přes formulář ukládám data do tabulky:
INSERT INTO article (article_id, title, url, description, content)
VALUES ('', ‚aaa‘, ‚aaa‘, ‚aaa‘, ‚<p>aaa</p>‘)

chyba:
Nette\Database\DriverException #HY000
SQLSTATE[HY000]: General error: 1366 Incorrect integer value: '' for column ‚article_id‘ at row 1.

Tuším, proč je tam chyba. Netuším, jak ji odstranit.

CZechBoY
Člen | 3608
+
0
-

Vlož null nebo úplně vynechej vkládání hodnoty do toho sloupce (platí pro autoincrement).

Editoval CZechBoY (2. 2. 2017 22:54)

kalatalabnik
Člen | 35
+
0
-

article_id je autoincrement? Sloupec můžeš vynechat.

Hanza
Člen | 4
+
0
-

Ano.
article (
article_id int(11) NOT NULL AUTO_INCREMENT,

PRIMARY KEY (article_id),
UNIQUE KEY url (url)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci
Mám metodu createComponentEditorForm()se skrytým polem article_id, které se metoda editorFormSucceeded snaží uložit do tabulky article jako prázdný text.

CZechBoY
Člen | 3608
+
0
-

@Hanza Tak hodnotu toho sloupce nevkládej…

rerege
Člen | 58
+
0
-

Dovolím se ještě zeptat, co je lepší řešení

  1. vynechávat tu proměnnou v poli s AI (když je proměnná předaná z formuláře, bylo by pak potřeba pro edit a pro insert mít dvojí kód, nebo?
  2. nebo poladit my.ini

mám WAMP s PHP 7.0.10 a MySQL 5.7.14
když nastavím sql-mode na none (v konzole) či v my.ini sql-mode="" tak to funguje
když nechám sql-mode na default (v konzole) či v my.ini ;sql-mode="" (zakomentován) tak to nefunguje
jinak toto mi nepomohlo sql-mode=„NO_AUTO_VALUE_ON_ZERO“ – chybu to házelo dále

přiznám se, že jsem beginner a mám jeden projekt, který mi vyhazuje tuto chybu a nerad bych se odchýlil od původního projektu, který navíc ostatním funguje
na straně druhé nevím co všechno způsobí, když sql-mode nepojede v defaultním režimu