2014-08-27 2 views
0

J'utilise l'instruction prepare dans WP, et j'ai besoin de la même chose avec l'addition "WHERE". Je dois être préparé. J'ai essayé de le mettre après les valeurs, mais ne fonctionne pas. Cela fonctionne quand j'utilise sans "WHERE", mais cette fois j'ai vraiment besoin de ce genre de déclaration.Comment formuler l'instruction SQL prepare avec WHERE

Ci-dessous, vous trouverez ce que j'ai essayé. De plus, je l'ai essayé de mettre « $ zan_id » après d'autres valeurs, mais ne fonctionne pas

$wpdb->query($wpdb->prepare(
       "INSERT INTO wp_tool 
       (tool_id, tool_content , tool_title) 
       VALUES (%d, %s , %s) WHERE id=$zan_id 
       ", 
       $tool, 
       $tool_content, 
       $tool_title 
      )); 

Répondre

3

Vous ne devez utiliser INSERT pour les nouvelles entrées de table. Si les entrées existent déjà, vous devez utiliser UPDATE par exemple.

UPDATE wp_tool SET tool_id=$tool, tool_content=$tool_content, tool_title=$tool_title WHERE id=$zan_id 

De plus, puisque vous utilisez pdo, vous devez effectuer les opérations suivantes

$wpdb->prepare("UPDATE wp_tool SET tool_id=?, tool_content=?, tool_title=? WHERE id=?"); 
$wpdb->execute(array($tool,$tool_content,$tool_title,$zan_id)); 

qui est en supposant que vous avez également configuré correctement Aop, qui est, d'ignorer types lors de la liaison des paramètres.

+1

. . J'ai modestement reformaté le code afin que je puisse upvote la réponse. –

+0

Je sais cela, et j'ai essayé, mais je ne veux pas mettre à jour la table entière, j'ai juste besoin de ces trois domaines. MAIS, j'ai besoin d'ajouter de nouvelles valeurs dans ces champs, de ne pas surpasser ceux qui existent déjà. Par exemple, j'ai sauvé id = 185, et la nouvelle valeur est 255, j'ai besoin d'avoir dans les champs 185 255. bouth d'entre eux. Puis-je le faire d'une manière ou d'une autre avec une mise à jour? – user3042036

+0

@ user3042036 Oui, je vous ai montré comment utiliser la commande update dans la réponse. Si vous faites défiler vers la droite, vous verrez que le filtre est utilisé. –