Kiedy wywołam bind_param, jeśli używasz przygotowanych instrukcji MySQLi w pętli?

Próbuję nauczyć się używać przygotowanych instrukcji z MySQLi do wstawiania danych.

Mimo że przygotowane instrukcje są chwalone za ich zdolność do wielokrotnego wykonywania podobnych instrukcji, nie mogę znaleźć przykładów wykonywania wielu instrukcji w pętli za pomocą MySQLi. Jestem szczególniezdezorientowany co do następujących:

czy zadzwonićbind_param przed moją pętlą lub wewnątrz mojej pętliczy przypisać wartości do moich zmiennych przed czy po wywołaniubind_param

Większość samouczków na temat przygotowanych instrukcji używa PDO. W przypadku PDO można przekazać tablicę wartości parametrówexecute, eliminując potrzebę dzwonieniabindParam. Nie dotyczy to MySQLi.

Podręcznik PHPmysqli_prepare wpis ma przykład pokazujący następującą kolejność operacji:

przypisz wartości do zmiennychprzygotować oświadczeniepowiązać zmiennewykonaćblisko

Sądząc po powyższym, założyłem, że będę musiał wywołać instrukcję bind w mojej pętli.

Jednak podręcznik PHPmysqli_stmt_execute wpis ma przykład pokazujący następującą kolejność operacji:

przygotować oświadczeniepowiązać zmienneprzypisz wartości do zmiennychwykonaćprzypisz wartości do zmiennychwykonaćblisko

Zauważ, że jedna rzecz, której ten przykład nie pokazuje, to miejsce, w którym zmienne są po raz pierwszy zadeklarowane. Myślałem, że przekazywanie niezadeklarowanych zmiennych dobind_param wygeneruje powiadomienie. W końcu odkryłem, że mogę przekazać niezdefiniowane zmienne, ponieważ są one przekazywane przez referencję.

Pytanie:
Czy jedna kolejność operacji jest preferowana nad drugą? A może zależy to tylko od tego, co robisz? Czy są jakieś problemy z jednym lub drugim?

Uwaga: Kod już używa MySQLi i nie chcę przełączać się na PDO (przełączanie jest obecnie poza zakresem tego projektu).

questionAnswers(1)

yourAnswerToTheQuestion