php - mysql_error != mysqli_error - mysql meldet Fehler, mysqli nicht

UDH5

Aktives Mitglied
Thread Starter
Dabei seit
05.07.2007
Beiträge
429
Reaktionspunkte
28
Ich habe seit kurzem auf meinem Mountain Lion mysql-5.6.10-osx10.7-x86_64.dmg installiert; mysql-5.6.10-osx10.7-x86_64 gibts auch noch, ist aber deaktiviert, nachdem ich - oops, lange Geschichte, wer zu faul ist, den Vorlauf zu lesen, sollte gleich zu "# Hier ist die eigentliche Frage" springen - nach einem Upgrade von Snow Leopard auf Mountain Lion, zu Testzwecken einen SSL-Host auf meinem lokalen Server aufgesetzt habe. In meiner CMS-Eigenkreation lag in einer älteren CMS-Version ein Fehler, der nach der Aktivierung von "LoadModule ssl_module libexec/apache2/mod_ssl.so" in der httpd.conf meinen Rechner komplett lahmlegte, wenn ich die entsprechende lokale Website aufrief. In der Backup-Version von Mac OS 10.6.8 gab es keien SSL-Host, und alles lief dementsprechend fehlerlos - da sieht man, was man anrichtet, wenn die Testumgebung nicht mit dem Scripting übereinstimmt.


Um nicht den Faden zu verlieren, mysql-5.6.10-osx10.7-x86_64 war sozusagen aus Versehen installiert und nervte sofort mit Fehlermeldungen wie: "Incorrect datetime value: '' for column 'high_res_timestamp' at row 1", oder "Field 'themenliste' doesn't have a default value" - wobei themenliste vom Typ 'text' ist und keinen 'default value' haben kann. Am meisten wurde bemängelt, wenn der Wert in einem Integer-Feld beim 'Update' oder 'Insert' keine Zahl war, sondern ein String;


Ich verstehe die Fehler, kann sie beseitigen, habe aber vorerst über meine PHP-Datenbankklasse den Strictmode in mysql und mysqli mit "SET sql_mode = ''" deaktiviert - bei mysql-5.6.10-osx10.7-x86_64 war das nicht notwendig, und meine /etc/my.cnf soll auch unverändert bleiben, damit ich nicht, im wirklichen Leben auf Online-Servern, böse Überaschungen erlebe. Mit Deaktivierung des Strictmodes funktioniert alles, wie gesagt, prächtig, nur habe ich in der unstabilen Phase der Nachforschung folgendes bemerkt:


# Hier ist die eigentliche Frage


Die Einstellungen für mysql und mysqli sind in der CMS-Konfiguraton gleich, dennoch liefert in der mysqli-Klasse


PHP:
if (($err = $this->linx->error) && $this->IP == '127.0.0.1')

   echo $this->linx->errno.' '.$aQuery.' --> '.$err;
kein Ergebnis, in der mysql-Klasse aber schon

PHP:
if (($err = mysql_error()) && $this->IP == '127.0.0.1')  

   echo mysql_errno( $this->linx).' '.$aQuery.'--> '.$err;

In beiden Fällen wird der eigentliche Befehl nicht ausgeführt, aber in der mysql-Klasse weiß man wenigstens warum.


Meine Suche nach Erkärung blieb erfolglos - es ist auch schwierig danach zu suchen, weshalb ein Fehler nicht auftritt. Weiß jemand von euch die Antwort?
 
Zuletzt bearbeitet:
Zurück
Oben Unten