MySQL Warnings in PHP4 auslesen

MySQL Warnings in PHP4 auslesen

am 06.10.2005 09:02:08 von Benny

Hallo!

ich verwende PHP 4.3.10 und würde gerne neben den Errors, auch
Warnings vom MySQL-Server auslesen, die zum Beispiel beim Schreiben von
NULL-Werten in NOT NULL-Spalten auftreten. Ist das irgendwie möglich?
Was ähnliches habe ich in der PHP.INI gefunden: mysql.trace_mode. Aber
dieser macht einfach nur vor jedem SELECT ein EXPLAIN SELECT und
schmeisst ne Warnung bei Tablescans etc.. Ich habe aus Sorge um die
Performance und der Problematik, dass man demnach nicht mehr ohne
Probleme SQL_CALC_FOUND_ROWS nutzen kann, diese Option ausgeschaltet.
Ist es nicht irgendwie möglich, die von MySQL ausgegebenen Warnungen
auszulesen?

Vielen Dank im Voraus!

Gruß,
Benjamin

Re: MySQL Warnings in PHP4 auslesen

am 06.10.2005 11:27:27 von BStrothmann

Schreibe das hinter deinen Abruf...

echo mysql_errno($link) . ": " . mysql_error($link) . "\n";

Gruß
Ben

"Benny" schrieb im Newsbeitrag
news:1128582128.678502.78410@g49g2000cwa.googlegroups.com...
Hallo!

ich verwende PHP 4.3.10 und würde gerne neben den Errors, auch
Warnings vom MySQL-Server auslesen, die zum Beispiel beim Schreiben von
NULL-Werten in NOT NULL-Spalten auftreten. Ist das irgendwie möglich?
Was ähnliches habe ich in der PHP.INI gefunden: mysql.trace_mode. Aber
dieser macht einfach nur vor jedem SELECT ein EXPLAIN SELECT und
schmeisst ne Warnung bei Tablescans etc.. Ich habe aus Sorge um die
Performance und der Problematik, dass man demnach nicht mehr ohne
Probleme SQL_CALC_FOUND_ROWS nutzen kann, diese Option ausgeschaltet.
Ist es nicht irgendwie möglich, die von MySQL ausgegebenen Warnungen
auszulesen?

Vielen Dank im Voraus!

Gruß,
Benjamin

Re: MySQL Warnings in PHP4 auslesen

am 06.10.2005 11:30:26 von BStrothmann

echo mysql_errno() . ": " . mysql_error() . "\n";

Sorry so...


"Benny" schrieb im Newsbeitrag
news:1128582128.678502.78410@g49g2000cwa.googlegroups.com...
Hallo!

ich verwende PHP 4.3.10 und würde gerne neben den Errors, auch
Warnings vom MySQL-Server auslesen, die zum Beispiel beim Schreiben von
NULL-Werten in NOT NULL-Spalten auftreten. Ist das irgendwie möglich?
Was ähnliches habe ich in der PHP.INI gefunden: mysql.trace_mode. Aber
dieser macht einfach nur vor jedem SELECT ein EXPLAIN SELECT und
schmeisst ne Warnung bei Tablescans etc.. Ich habe aus Sorge um die
Performance und der Problematik, dass man demnach nicht mehr ohne
Probleme SQL_CALC_FOUND_ROWS nutzen kann, diese Option ausgeschaltet.
Ist es nicht irgendwie möglich, die von MySQL ausgegebenen Warnungen
auszulesen?

Vielen Dank im Voraus!

Gruß,
Benjamin

Falsch verstanden!

am 06.10.2005 13:45:09 von Benny

Hallo Ben,

sorry, weder noch. Ich habe von *Warnungen* geredet, nicht *Fehlern*!
MySQL gibt natürlich Fehler aus, wenn man z.B. Syntaxfehler im Query
hat; diese werden dann auch per mysql_error ausgegeben. Allerdings
stuft MySQL z.B. das Schreiben von NULL Werten in NOT NULL Spalten als
*Warnung* ein. Diese werden von PHP nicht ausgelesen. MySQL-Tools wie
der QueryBrowser zeigen diese allerdings an.

Wie gesagt, ich wollte wissen, wie man die MySql-Warnungen ausliest, da
diese oft nützliche Informationen über schlecht geschriebene Queries
enthalten.

Trotzdem danke für die Antwort.

Grüße,
Benjamin W.

PS: Bitte vermeide TOFU (Text oben, Fullquote unten)! Siehe FAQ.

Re: Falsch verstanden!

am 06.10.2005 16:01:20 von Hartmut Holzgraefe

Benny wrote:
> Wie gesagt, ich wollte wissen, wie man die MySql-Warnungen ausliest, da=

> diese oft nützliche Informationen über schlecht geschriebene Querie=
s
> enthalten.

mysql_query("SHOW WARNINGS");

--=20
Hartmut Holzgraefe, Senior Support Engineer .
MySQL AB, www.mysql.com

Re: Falsch verstanden!

am 06.10.2005 17:30:03 von Benjamin Wilger

> mysql_query("SHOW WARNINGS");

That's what I'm talking about!
Vielen Dank! Und ich dachte, da gäbe es eine PHP-Funktion für. Super!

Gruß,
Benjamin