- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- Stranezza in mysql
-
versione mysql 4.1.20 linguaggio che ci interagisce php
una query in cui qualche volta è successa la cosa strana è questa:
UPDATE utenti SET cibo=cibo-".(150*$_POST['numerolav']).",lavoratori=lavoratori+'".$_POST['numerolav']."',punteggio=punteggio+'".(10*$_POST['numerolav'])."' WHERE userid='".$user['userid']."'
nn da errori ed esegue giusto tutto tranne cibo=cibo-".(150*$_POST['numerolav'])."
-
hai cambiato host? o tu sappia il tuo hoster ha cambiato qualcosa nella configurazione di mysql?
questo tipo capita solitamente quando il valore specificato non è dello stesso tipo dell'attributo!!
ma se tu dici che è tutto ok....
-
sono su un vps e questa è la configuarazione attuale in my.cnf:
[mysqld]
set-variable=local-infile=0
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sockDefault to using old password format for compatibility with mysql 3.x
clients (those using the mysqlclient10 compatibility package).
old_passwords=1
skip-bdb
set-variable = innodb_thread_concurrency=2
[mysql.server]
user=mysql
basedir=/var/lib
[mysqld_safe]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
skip-bdb
set-variable = innodb_thread_concurrency=2
-
potresti incollarmi la descrizione della tabella incriminata con il tipo di ogni campo???
dovresti anche controllare il valore di 150*$_POST['numerolav']
in caso prova a mettere backtickscibo
=cibo
-(150*....)metti un echo prima dell'esecuzione della query e vedi cosa printa...
Grazie!
-
Provato a fargli fare quella moltiplicazione a parte?
Ovvero...
[PHP] $moltiplicazione = 150*$_POST['numerolav'];[/PHP]
e poi...
[PHP] SET cibo=cibo-".$moltiplicazione[/PHP]
-
provato a printare ma esce esatto, per quanto riguarda i tipi tutti e 3 gli attributi sono mediumint(7)
-
e il valore di cibo qual'è?
e il valore di 150*$_POST['numerolav'] ?
-
stampando la query esce:
UPDATE utenti SET cibo=cibo-'150',lavoratori=lavoratori+'1',punteggio=punteggio+'10' WHERE userid='1'
provato a togliere gli ' e non cambia niente
-
per caso non e che cibo e mediumint unsigned?
-
non è unsigned mentre gli altri 2 sì