Problem mit PDO und Apache

  • Themenstarter Themenstarter hot_wax
  • Beginndatum Beginndatum
H

hot_wax

Hallo,

ich habe die neuste Version von XAMPP mit Apache 2.2. Zurzeit stürzt mein Apache immer ab wenn ich Sachen mit PDO mache. In Windows kommt dann die Meldung: 'Apache hat ein Fehler gemeldet und musste beendet werden'.

Folgendes steht im Errorlog:
[Wed Jan 14 19:07:37 2009] [notice] Parent: child process exited with status 3221225477 -- Restarting.
[Wed Jan 14 19:07:38 2009] [notice] Digest: generating secret for digest authentication ...
[Wed Jan 14 19:07:38 2009] [notice] Digest: done
[Wed Jan 14 19:07:38 2009] [notice] Apache/2.2.11 (Win32) DAV/2 mod_ssl/2.2.11 OpenSSL/0.9.8i mod_autoindex_color PHP/5.2.8 configured -- resuming normal operations
[Wed Jan 14 19:07:38 2009] [notice] Server built: Dec 10 2008 00:10:06
[Wed Jan 14 19:07:38 2009] [notice] Parent: Created child process 2364
[Wed Jan 14 19:07:39 2009] [notice] Digest: generating secret for digest authentication ...
[Wed Jan 14 19:07:39 2009] [notice] Digest: done
[Wed Jan 14 19:07:39 2009] [notice] Child 2364: Child process is running
[Wed Jan 14 19:07:39 2009] [notice] Child 2364: Acquired the start mutex.
[Wed Jan 14 19:07:39 2009] [notice] Child 2364: Starting 250 worker threads.
[Wed Jan 14 19:07:39 2009] [notice] Child 2364: Starting thread to listen on port 443.
[Wed Jan 14 19:07:39 2009] [notice] Child 2364: Starting thread to listen on port 80.

Das ist mein Code
PHP:
    		try {
    		 
    			$dbh = new PDO($dsn, $user, $pw);

 				$stmt = $dbh->prepare('SELECT id, name, password, email FROM user WHERE email = :email');
         		$stmt->bindParam(':email', $_POST['email']);

 				$stmt->execute();

     			$result = $stmt->fetch(PDO::FETCH_OBJ);

		
    		
  			} catch (PDOException $e) {
  			 
    			echo "Fehler bei der Datenbank-Verbindung: ". $e->getMessage();
    			die();
    			
  			}

Das komisch ist sobald ich bindParam oder was anderes auskommentiere, stürzt es nicht mehr ab.

Gegoogelt habe ich auch schon nach dem Fehler, dort habe ich aber nur herausgefunden das ich Apache 1.x nehmen solle weil das diese Bugs nicht hätte.

Wisst ihr noch etwas?
 
Zuletzt bearbeitet von einem Moderator:
Hey,

mittlerweile ne Lösung gefunden?
Ich arbeite mit Propel und muss bei einem doSelect mit dem selben Problem leben.
Wirklich ein Zustand...

So kann man ja nich arbeiten....

Code:
[Sat Feb 07 21:04:58 2009] [notice] Parent: child process exited with status 3221225477 -- Restarting.
[Sat Feb 07 21:05:35 2009] [warn] pid file C:/xampp/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
[Sat Feb 07 21:05:35 2009] [notice] Digest: generating secret for digest authentication ...
[Sat Feb 07 21:05:35 2009] [notice] Digest: done
[Sat Feb 07 21:05:39 2009] [warn] pid file C:/xampp/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
[Sat Feb 07 21:05:39 2009] [notice] Digest: generating secret for digest authentication ...
[Sat Feb 07 21:05:39 2009] [notice] Digest: done
[Sat Feb 07 21:05:40 2009] [notice] Apache/2.2.11 (Win32) DAV/2 mod_ssl/2.2.11 OpenSSL/0.9.8i mod_autoindex_color PHP/5.2.8 configured -- resuming normal operations
[Sat Feb 07 21:05:40 2009] [notice] Server built: Dec 10 2008 00:10:06
[Sat Feb 07 21:05:40 2009] [notice] Parent: Created child process 5108
[Sat Feb 07 21:05:41 2009] [notice] Digest: generating secret for digest authentication ...
[Sat Feb 07 21:05:41 2009] [notice] Digest: done
[Sat Feb 07 21:05:42 2009] [notice] Child 5108: Child process is running
[Sat Feb 07 21:05:42 2009] [notice] Child 5108: Acquired the start mutex.
[Sat Feb 07 21:05:42 2009] [notice] Child 5108: Starting 250 worker threads.
[Sat Feb 07 21:05:42 2009] [notice] Child 5108: Starting thread to listen on port 443.
[Sat Feb 07 21:05:42 2009] [notice] Child 5108: Starting thread to listen on port 80.

und die verursachenden Zeilen:
PHP:
$c = new Criteria();
$c->add(MusikrichtungenPeer::NAME, "House%", Criteria::LIKE);
$c->setLimit(10);

$books = MusikrichtungenPeer::doSelect($c);
in der letzten Zeile knallts ne raus.

Mh ich hab gelesen man soll output_buffering auf On setzen - hat bei mir aber nix geholfen. Danach hab ich dann gelesen man soll auf auf nen 1.1 apache umsteigen - aber da kann ich mal gerade garnich drauf!

lg
 
Zuletzt bearbeitet:
Also mir ist das bisser nur dann passiert wenn man einen fehler im Quellcode gemacht hat.

Entweder beim Sql befehl oder beim ersetzen der PDO platzhalter.
Testet den Sql befehl am besten unter phpmyadmin so findet man am schnellsten den Fehler.

Mfg Splasch
 
Danke für den Hinweis - aber da es sich bei Propel um nen ORM-Framework handelt, dürfte es sehr kompliziert sein sich durch die Sources zu wühlen bis man auf den Fehler stößt (bzw das Statement welches erzeugt wird)...

EDIT:
Gerade ist mir noch eingefallen, dass Propel ja auch PDO nutzt.

In order to install Propel you will need:
  • A supported database (MySQL, MS SQL Server, PostgreSQL, SQLite, Oracle)
  • PHP 5.2.x. PHP needs to have the following module support:
    • XSLT (libxslt)
    • DOM (libxml2)
    • PDO (with support for your desired database)
    • SPL (you must enable SPL explicitly in some PHP distributions)
  • Phing 2.2.x
  • PEAR Log package (optional)

Denke mal das es daran liegen wird.

Gibt auchnoch jede Menge anderer Leute mit dem Problem:
Die Liste ist unendlich lang...

DIE LÖSUNG:
http://www.apachefriends.org/f/viewtopic.php?f=4&t=32587

Also mein Problem ist damit gelöst ;)

Gruß
Matthias
 
Zuletzt bearbeitet:
Zurück