
Kapitel 9: MySQL-APIs 585
if (mysql_real_query(&mysql,anfrage,(unsigned int) (end - anfrage)))
{
fprintf(stderr, "Einf¨ugen der Zeile fehlgeschlagen, Fehler: %s\n",
mysql_error(&mysql));
}
Die im Beispiel benutzte strmov()-Funktion ist in der mysqlclient-Bibliothek enthalten
und funktioniert wie strcpy(), gibt aber einen Zeiger auf Null am Ende des ersten Param-
eters zur¨uck.
R¨uckgabewerte
Die L¨ange des Wertes in nach, ohne das Null-Zeichen am Ende.
Fehler
Keine.
9.4.3.43 mysql_real_query()
int mysql_real_query(MYSQL *mysql, const char *anfrage, unsigned int laenge)
Beschreibung
F¨uhrt die SQL-Anfrage aus, auf die von anfrage gezeigt wird, was eine laenge Bytes lange
Zeichenkette sein sollte. Die0 Anfrage muss aus einem einzelnen SQL-Statement bestehen.
Sie d¨urfen kein Semikolon (‘;’) oder \g zum Statement hinzuf¨ugen.
Sie m¨ussen mysql_real_query() statt mysql_query() f¨ur Anfragen benutzen, die
Bin¨ardaten enthalten, weil Bin¨ardaten das ‘\0’-Zeichen enthalten k¨onnen. Ausserdem ist
mysql_real_query() schneller als mysql_query(), weil es in der Anfragezeichenkette
nicht strlen() aufruft.
Wenn Sie wissen wollen, ob die Anfrage eine Ergebnismenge zur¨uckgeben sollte oder
nicht, k¨onnen Sie hierf¨ur mysql_field_count() benutzen. Siehe Abschnitt 9.4.3.20
[mysql field count], Seite 567.
R¨uckgabewerte
0, wenn die Anfrage erfolgreich war. Nicht-0, wenn ein Fehler auftrat.
Fehler
CR_COMMANDS_OUT_OF_SYNC
Befehle wurden nicht in der korrekten Reihenfolge ausgef¨uhrt.
CR_SERVER_GONE_ERROR
Der MySQL-Server ist weg.
Comentarios a estos manuales