2011-06-24 5 views
1

J'essayais de faire une requête SQL (insert into users set cash = cash + 20), quelqu'un peut-il m'aider avec la version de déclaration préparée PDO de la requête ci-dessus?PHP -> Déclaration de mise à jour de PDO

+1

Ce n'est pas une instruction d'insertion valide. Cela devrait être 'insérer dans les utilisateurs mis en espèces = 20». Cherchez-vous une mise à jour? –

+0

@Francois: Oh! Vraiment. Commander la deuxième syntaxe de INSERT http://dev.mysql.com/doc/refman/5.5/en/insert.html –

+1

@Shakti Singh - Je vous dois des excuses. Vous avez absolument raison. Je n'avais aucune idée que tu pouvais faire ça. –

Répondre

0

Vous essayez de faire une mise à jour, pas un insert

UPDATE users SET cash = (cash + 20) 
WHERE <condition> 
3

Je ne peux pas vraiment savoir si vous êtes à la recherche d'insérer ou de mise à jour. Voici des exemples d'instructions préparées par PDO. Ils supposent que vous avez déjà connecté et que l'objet PDO est $dbh.

Insérer:

$sth = $dbh->prepare('INSERT INTO `users` (`cash`) VALUES (?)'); 
$sth->execute(array(20)); 

Mise à jour:

// All users 
$sth = $dbh->prepare('UPDATE `users` SET `cash` = `cash` + ?'); 
$sth->execute(array(20)); 

// A specific user (assuming that there's a field name "id") 
$sth = $dbh->prepare('UPDATE `users` SET `cash` = `cash` + ? WHERE `id` = ?'); 
$sth->execute(array(20, $id));