2010-05-12 25 views

Respuesta

0

Puede utilizar con toda seguridad ON DUPLICATE KEY UPDATE con PHP + MySQL. ¿Lo has probado? Si es así, ¿con qué problema se topó?

+0

Lo siento, mi pregunta no era clara, así que lo editó. He usado ON DUPLICATE KEY UPDATE muchas veces, pero nunca con una declaración preparada. Miré varios lugares para obtener instrucciones sobre cómo se podría hacer esto, pero no encontré nada. Antes de perder una tarde en una experimentación inútil pensé que verificaría si alguien puede confirmar que esto es realmente factible. -Jim –

2

Debe poder ejecutar cada consulta SQL como una declaración preparada. No sé por qué crees que habría una excepción para ON DUPLICATE KEY UPDATE. Pruébelo primero y pregúntenos si hay algún problema.

+0

Gracias Emil. Lo probaré, aunque no me imagino cómo funcionaría. ¿Agregaría la ACTUALIZACIÓN DE LLAVE DUPLICADA ENCENDIDA a la consulta en mysqli_prepare y también tendría los valores de reemplazo como? ¿marcas? Si eso funciona, entonces sería muy útil para mí. Informaré sobre mis resultados, aunque puede pasar un tiempo antes de que tenga tiempo de probar esto. Jim –

18

Aquí está un ejemplo generalizado de este uso:

$db->prepare(' 
INSERT INTO tableName (id, col1, col2, col3...) 
VALUES (?,?,?,?) 
ON DUPLICATE KEY 
UPDATE col1 = VALUES(col1), 
     col2 = VALUES(col2), 
     col3 = VALUES(col3) 
'); 

$stmt->bind_param('isss', 
        $id, 
        $col1, 
        $col2, 
        $col3 
       ); 
$db->execute($stmt); 

if ($id == null) { //If you need the auto increment from the insert. 
    $newId = $stmt->insert_id; 
} 
Cuestiones relacionadas