Chyba v update?
12 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Nejdou mi opravovat data v tabulce, čím to může být? Chybové hlášení: SQL-dotaz : UPDATE `Spoj` setnicky = `Roderik` where key = `14`; MySQL hlásí: Va-Bše syntaxe je nějaká divná bl-Bízko 'key=`14`' na řádku 1
-
update spoj SET setnicky='Roderik" where key=14 btw, ma nejaky vyznam, ze pouzivas 'zpetny apostrofy" "`"?
-
RTFM! update spoj SET setnicky='Roderik" where key=14 btw, ma nejaky vyznam, ze pouzivas 'zpetny apostrofy" "`"?
-
Používám i rovné apostrofy, zkoušel jsem i normální uvozovky a zkoušel jsem to i bez uvozovek. Všude v literatuře jsou rovné apostrofy. Ani jedna varianta nefungovala. Nemůže to být v nějakém nastavení tabulky? Nebo účtu?
-
A co takhle ? update spoj SET setnicky='$Roderik' where key=14
-
Ani tak to nefunguje, ten sloupec setnicky je příkaz SET, sloupec Nicky. Fakt nevím, čím to může být. Nemůže to být nějakým nastavením tabulky, nebo úrovní zabezpečení exploreru?
-
To není možné... Ukaž nám část kódu, ve které to máš. Obecná sql syntaxe je: UPDATE tabulka SET sloupec1='text', sloupec2=cislo, sloupec3='datum' WHERE id=cislo
-
Výpis kódu: Výpis skriptu: $nazev_hostitele="*****"; $jmeno_hostitele="*"; $heslo="*"; $nazev_databaze="***"; $nazev_tabulky="****"; $polozka="update $nazev_tabulky set Jmeno='$Jmeno', Nicky='$Nicky', Mobil='$Mobil', Email='$Email', ICQ='$ICQ', Pluk='$Pluk' where Key=$Key"; if (!($link=mysql_connect($nazev_hostitele, $jmeno_hostitele, $heslo))){ printError(sprintf("Chyba při připojování uživatele %s k hostiteli %s", $jmeno_hostitele, $nazev_hostitele)); exit(); } if (!mysql_select_db($nazev_databaze, $link)){ printError(sprintf("Chyba při výběru databáze %s", $nazev_databaze)); printError(sprintf("Chyba: %d %s", mysql_errno($link), mysql_error($link))); exit(); } $vysledek=mysql_query($polozka, $link); Spojení ověřeno - funkční, normálka mi vkládá řádky i položky polozka mi taky ukáže ten řetězec co potřebuju, proměnné dorazí ke zpracovatelskému setu :) ale neudělá to vůbec nic. Key mám nastavenou v tabulce, jako int,primární, index a autopřidávání+1, je to doufám správně.
-
Tak si nech vypsat SQL dotaz, který generuješ, dříve, něž ho necháš provést. Uvidíš, jestli v něm není někde chyba: <?php $polozka="update $nazev_tabulky set Jmeno='$Jmeno', Nicky='$Nicky', Mobil='$Mobil', Email='$Email', ICQ='$ICQ', Pluk='$Pluk' where Key=$Key"; echo $polozka; ?> Jen tak mě napadám jestli ti v něm někde nechybí mezera. Třeba před "where". Asi takto: UPDATE tabulka SET sloupec1='hodnota1', sloupec2='hodnota2'WHERE id=10001
-
Ne mezery držím, to to jenom takhle na sebe napráská to generované chybové hlášení. Dotaz jsem si nechal napsat a echo mi vyhodilo přesnou sekvenci. Kamarád mi říkal, že Webzdarma prý používá jinou skriptaci pro úpravu souborů, že to kolidovalo s asp, ale přesné znění mi neřekl, takže jsem z toho ještě větší jelen. Prolezl jsem kde co a to jak jsem napsal ten příkaz je všude uváděné tak jak jsem to vypsal. Chyba musí být buď v nastavení tabulky, nebo v tom, jak si server vykládá moje příkazy.
-
jen k tem apostrofum ... to vis, ze maj vyznam, jkt, kdyz si nazves sloupec treba delete a nedas k nemu zpetny apostrof, mysql to nepochopi ... uz sem s tim mel problemy, jinak bych se neozyval :-) ... lepci nejakej ten apostrof navic, nez dlouhy hledani chyb
-
jak si tak s tím hraju, tak se mi povedlo změnit celý sloupec. Problém bude zřejmě v id proměnné Key. Co je za podmínkou where, to mi SQL nebere. Jak má být přesně nadefinován ten indexový klíč v tabulce? Zkusil jsem všechny varianty a kromě fulltext mi to vzalo všechno a reagovalo to stejně. Příkaz Update Tabulka set Jmeno='Jméno'; funguje, akorát nastaví do celého sloupce ty samé hodnoty. Jak tam dám where id=1;, tak je syntaxe "nějaká divná".