int mysql_stmt_prepare(MYSQL_STMT *stmt, const char
*query, unsigned long length)
Beschreibung
Wenn man ihr den von mysql_stmt_init()
gelieferten Anweisungs-Handle übergibt, bereitet diese
Funktion die SQL-Anweisung vor, auf die der String
query
verweist, und liefert einen
Statuswert. Die Länge des Strings sollte im
length
-Argument angegeben werden. Der
String muss aus einer einzigen SQL-Anweisung bestehen. Bitte
fügen Sie am Ende der Anweisung kein Semikolon
(‘;
’) oder
\g
an.
Die Anwendung kann einen oder mehrere Parametermarker in die
SQL-Anweisung einbinden, indem sie die Fragezeichen
(‘?
’) an den passenden Stellen
in den SQL-String einbettet.
Die Marker sind nur an bestimmten Stellen in den
SQL-Anweisungen erlaubt, beispielsweise in der
VALUES()
-Liste einer
INSERT
Anweisung (um Spaltenwerte für eine
Zeile vorzugeben) oder um einen Vergleichswert zum Vergleich
mit einer Spalte einer WHERE
-Klausel
anzugeben. Sie dürfen jedoch nicht für Bezeichner (wie etwa
Tabellen- oder Spaltennamen) oder für die Operanden eines
Binäroperators wie etwa des Gleichheitszeichens
=
benutzt werden. Die zweite Beschränkung
ist notwendig, weil es ansonsten unmöglich wäre, den
Parametertyp festzustellen. Generell sind Parameter nur in
Data Manipulation Language(DML)-Anweisungen und nicht in Data
Definition Language(DDL)-Anweisungen zulässig.
Die Parametermarker müssen mit
mysql_stmt_bind_param()
an die
Anwendungsvariablen gebunden werden, bevor die Anweisung
ausgeführt wird.
Rückgabewerte
Null, wenn die Anweisung erfolgreich vorbereitet wurde, und ein von null verschiedener Wert, wenn ein Fehler auftrat.
Fehler
CR_COMMANDS_OUT_OF_SYNC
Befehle wurden in der falschen Reihenfolge ausgeführt.
CR_OUT_OF_MEMORY
Speicherüberlauf.
CR_SERVER_GONE_ERROR
Der MySQL Server ist nicht mehr verfügbar.
CR_SERVER_LOST
Die Serververbindung brach während der Anfrage ab.
CR_UNKNOWN_ERROR
Ein unbekannter Fehler ist aufgetreten.
Wenn die Vorbereitung gescheitert ist (d. h., wenn
mysql_stmt_prepare()
nicht null
zurückliefert), können Sie die Fehlermeldung mit
mysql_stmt_error()
abrufen.
Beispiel
Wie mysql_stmt_prepare()
eingesetzt wird,
erfahren Sie im Beispiel von
Abschnitt 24.2.7.10, „mysql_stmt_execute()
“.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.