2010-05-12 12 views

Odpowiedz

0

Można z pewnością użyć ON DUPLICATE KEY UPDATE z PHP + MySQL. Próbowałeś tego? Jeśli tak, z jakim problemem spotkałeś się?

+0

Niestety, moje pytanie nie było jasne, więc ja go edytować. Użyłem DUPLICATE KEY UPDATE wiele razy, ale nigdy z przygotowanym oświadczeniem. Szukałem w kilku miejscach instrukcji, jak to zrobić, ale niczego nie znalazłem. Zanim zmarnuję popołudnie na bezowocne eksperymenty, pomyślałem, że sprawdzę, czy ktoś może potwierdzić, że jest to wykonalne. -Jim –

2

Powinieneś być w stanie uruchomić każde zapytanie SQL w postaci gotowej instrukcji. Nie wiem, dlaczego uważasz, że będzie jakiś wyjątek dla ON DUPLICATE KEY UPDATE. Wypróbuj najpierw i zapytaj nas, czy są jakieś problemy.

+0

Dzięki Emil. Spróbuję, chociaż nie mogę sobie wyobrazić, jak to by działało. Czy chcesz dodać DUPLICATE KEY UPDATE do zapytania w mysqli_prepare, a także mieć wartości zastępcze jako? znaki? Jeśli to zadziała, byłoby to dla mnie bardzo przydatne. Opowiem o moich wynikach, chociaż może minąć trochę czasu, zanim będę miał czas, aby to wypróbować. Jim –

18

Oto uogólnione przykładem tego zastosowania:

$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; 
} 
Powiązane problemy