Autor Zpráva
Hu GO
Profil *
mam tento příkaz:

$zaznam= mysql_query(" UPDATE vysledky SET body=1 WHERE nick='Lojza' AND den='3' AND mesic='8' AND rok='2005' ; UPDATE users SET body='body + 1' WHERE nick='Lojza' ;") or die(mysql_error());

a hlásí to:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '; UPDATE users SET body='body + 1' WHERE nick='Lojza'' at line

Víte někdo co je na tom špatně?

Dík.
ronnie
Profil
Výraz 'body + 1' je pravděpodobně špatný.
krteczek
Profil
někde si musíš načíst obsah body a přičíst tam to co potřebuješ a vložit to jako body='{$body}'
WertriK
Profil *
ja bych zkusil toto :
$zaznam= mysql_query("UPDATE vysledky SET body='1' WHERE nick='Lojza' AND den='3' AND mesic='8' AND rok='2005' ; UPDATE users SET body = body + 1 WHERE nick='Lojza';") or die(mysql_error());
ash
Profil
Nie som si istý, ale mám pocit, že v mysql_query môže byť len jeden príkaz.

A podľa manuálu na konci nemá byť bodkočiarka:
The query string should not end with a semicolon
http://www.php.net/manual/en/function.mysql-query.php
Hugo
Profil
ash

IMHO mas pravdu. Je to pojistka proti mysql injection.
Wiki
Profil
BTW: ja vsade pisem nazov stlpa do `` -> `body` = `body` + 1 ....
Hu GO
Profil *
Když jsem napsal:

$zaznam= mysql_query(" UPDATE vysledky SET body=1 WHERE nick='Lojza' AND den='3' AND mesic='8' AND rok='2005' ");
$zaznam2= mysql_query("UPDATE users SET body=body + 1 WHERE nick='Lojza' ;") or die(mysql_error()) ;
tak to dungovalo.
Problém je v tom, že zadávám do jednoho query víc MySQL příkazů. Jenže když to stejné napíšu do phpMyAdmin, funguje to.

Zkoušel jsem odstranit ; na konci, i apostrofy u body + 1, ale pořád to hlásí chybu...
cz
Profil *
vice prikazu v jedne query v php fci mysql_query() nejde (i z duvodu bezpecnosti)
phpmyadmin to preparsovava
juneau
Profil
resil jsem stejny problem a musi to byt napsano bez mezer > "body=body+1" ... pak mi to funguje.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0