Aktualizuję mój kod PHP z mysql do mysqli, ale nie mogę znaleźć odpowiedzi na to pytanie: Czy zapytania aktualizacji mysqli zwracają wynik?Czy żądania aktualizacji mysqli powinny zwracać wynik?
z MySQL, mogę zrobić
$result = mysql_query("UPDATE `data` SET `field1` = 1 WHERE `key` = '$mykey');
i $ wynik będzie prawdą, mimo że zapytanie nie zwraca żadnych wierszy.
Teraz jednak w kodzie mysqli, mam coś takiego (error-handling usunięte dla jasności):
$stmt = $mysqli->prepare("UPDATE `data` SET `field1` = 1 WHERE `key` = (?)")
$stmt->bind_param("s", $mykey);
$stmt->execute();
$result = $stmt->get_result();
i $ wynik jest fałszywy.
Dla rekordu kwerenda jest ważna (zignoruj wszystkie literówki, które mogłem dokonać, transkrybując ją do stackoverflow), a pole 1 zostało poprawnie zaktualizowane w bazie danych zgodnie z oczekiwaniami. Ponadto get_result() działa dobrze dla wybranych zapytań, więc nie jest to kwestia, że get_result() nie jest dostępny.
Po prostu chcę wiedzieć, czy to oczekiwane zachowanie się zmieniło, czy powinienem dalej próbować znaleźć jakiś błąd.
OK ... komentarz zniknął, mówiąc mi, żebym sprawdził dokumentację, która rzeczywiście stwierdza, że get_result "zwraca zestaw wyników lub FALSE w przypadku niepowodzenia." Czytałem to wcześniej, zanim zadałem moje pytanie, i myślę, że jestem ciekawy, czy dokumentacja jest dokładna. Po tym, jak $ stmt-> get_result() zwróciło fałsz, sprawdziłem $ stmt-> errno (który był 0) i $ stmt-> error (który był pusty) i wydawało się, że zapytanie zostało wykonane pomyślnie (ponieważ baza danych została zaktualizowana). Więc gdzie jest ten błąd? – Swiftheart