Autor | Zpráva | ||
---|---|---|---|
ferda999 Profil |
#1 · Zasláno: 27. 2. 2024, 09:26:46
Zdravím, asi trochu divný dotaz, nevím proč, dříve mě normálně procházel např. příkaz
INSERT INTO tabulka (col1,col2,col3,col4) VALUE ('val1','val2','val3','val4') najednou mě to začalo vracet SQLSTATE[42S22] Column not found: Unknown column 'col3' in field list když upravím ('col1','col2','col3','col4') tak ok v phpAdminu to chodí i bez uvozovek Co se změnilo, nebo v čem nastal problém? Seknul jsem se na tom půl dne, dříve u sql bylo vše ok, teď to u některých sloupců hlasí že neexistují. Přičemž na sqlkách jsem nic neměnil. Děkuji za vysvětlení možné příčiny. |
||
anonym_ Profil * |
#2 · Zasláno: 27. 2. 2024, 09:30:01
ferda999:
Uvozovky určitě ne, zpětné apostrofy. Jaký je reálný název toho sloupce, který vrací chybu? |
||
ferda999 Profil |
#3 · Zasláno: 27. 2. 2024, 09:45:18
anonym:
mám sloupce id,name,uid,device .. a proč to zrovna hlásí u device? Proč dříve to šlo bez apostrofů (na scriptu jsem nic neměnil, tedy jestli nedělám někde botu)? |
||
Kajman Profil |
Ukažte všechny sloupce, nejlépe výsledek
show create table tabulka A co vrátí dotaz? show variables where variable_name like 'lower_case_table_names' Edit: plus výsledek select version() |
||
ferda999 Profil |
Kajman:
lower_case_table_names 0 CREATE TABLE `tabulka` ( `uid` int(11) NOT NULL AUTO_INCREMENT, `jmeno` char(30) COLLATE utf8_czech_ci NOT NULL, `device` char(50) COLLATE utf8_czech_ci DEFAULT NULL, PRIMARY KEY (`uid`), KEY `uid` (`uid`) ) ENGINE=InnoDB AUTO_INCREMENT=40742 DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci nevím, proč hlásí neexistující sloupec když v tabulce je... v kodu jsem nic nemenil, jen jsem tabulku importoval pomoci phpMyAdmina z produkční db do testovací db. Před importem to fungovalo. Není v tom nějaký sváb? Záhada, když příkaz provedu v phpMyAdmin, normálně se provede... přes volání v php hlásí neexistující sloupec. Tak nevím... |
||
Kajman Profil |
#6 · Zasláno: 27. 2. 2024, 10:40:40
PMA tuším dělávalo vlastní parsování dotazů a ve skutečnosti mohlo na server poslat jiný dotaz. I z toho důvodu jsem raději používal Adminer.
V php používáte nějakou databázovou knihovnu? Jakou verzi vypíše ten doplnění dotaz select version()? |
||
ferda999 Profil |
10.1.19-MariaDB
klasika www.php.net/manual/en/pdo.exec.php ještě zkusím sqlko přímo zadat do příkazu (jinak ho jako proměnnou sestavuji z parametrů), .... Opravdu nechápu ... sloupeček device jsem z insertu vyhodil a řádek se vložil ... ale proč se sloupečkem device to nejde? V tabulce ten sloupek je i hodnotu zadávám správnou? V phpMyAdmin to jde i s device. Jméno sloupce jsem zkusil s apostrofy i bez. |
||
ferda999 Profil |
absudrní stav, dva inserty do stejné tabulky se stejným parametrem sloupců `device` char(50) COLLATE utf8_czech_ci DEFAULT NULL, `mobil` char(50) COLLATE utf8_czech_ci DEFAULT NULL,
INSERT INTO tabulka (device) VALUES ('aaaaaaaaaaaaaaa'); = sloupec device nenalezen INSERT INTO tabulka (mobil) VALUES ('aaaaaaaaaaaaaaa'); = ok, vlozeno dá se toto nějak vysvětlit? |
||
ferda999 Profil |
#9 · Zasláno: 27. 2. 2024, 15:46:31
Omlouvám se a beru vše zpět, chyba asi nalezena, samozřejmě u mne ... a den hledání....
|
||
Časová prodleva: 11 měsíců
|
0