PHP5 arbeitet nicht mit MySQL 5.0 zusammen

FreeZeY

Lt. Junior Grade
Registriert
Aug. 2004
Beiträge
398
Hallo,
ich habe mir das Buch "PHP und MySQL" von Kevin Yank angeschafft.
Als das Buch geschrieben wurde, war MySQL in der Version 4.0 aktuell.
Nachdem ich mir dachte, dass das so wie bei der 4.0-Installation laufen würde, kam die Überraschung.
Fatal error: Call to undefined function mysql_connect() in...

Ich habe mich ein wenig schlau gemacht und gelesen, dass man die Extension php_mysql.dll mit >= MySQL 4.1 nicht mehr benutzen kann, und stattdessen php_mysqli.dll verwenden soll.
Nachdem ich in der PHP.ini die Zeile
extension=php_mysql.dll
nach
extension=php_mysqli.dll
änderte, lief es noch nicht (ich habe es auch nicht anders erwartet.)

Könnte jemand von euch mir mal anfängerfreundlich erklären, was ich jetzt zu machen hätte, damit ich mit PHP MySQL ansteuern kann?

Vielen Dank,
FreeZeY
 
Ja... neu gestartet...
Danach gehts immer noch nicht.
Was muss man denn noch ändern?

lg FreeZeY
 
Hmm... noch nie was von gehört... welcher Port denn? und wo hin?

lg
 
mysql.default_port = 3306 das müsste du in der php.ini drin zu stehn zu haben wen dein mywsql auf den standert port leuft glaube ich ...
 
FreeZeY schrieb:
Fatal error: Call to undefined function mysql_connect() in...

Sorry, jetzt erst gesehen, wenn du mysqli verwenden willst/musst, musst du natürlich auch die entsprechenden Funktionen benutzen, in diesem Fall mysqli_connect() ...
 
Gab den Fehler vom Falschen Skript gepostet...
Fatal error: Call to undefined function mysqli_connect() in...
^^das selbe ;)

lg
 
Ok, noch ein paar Fragen:

1) Welchen Webserver benutzt du, Apache nehme ich mal an, in einer 2.0.xx Version?
2) Hast du das Semikolon in deiner php.ini Datei vor dem
extension=php_mysqli.dll rausgenommen? Nehme ich mal stark an ...
3) PHP ist bei dir als CGI-Modul im Webserver angebunden? Wo/in welchem Verzeichnis befindet sich deine php.ini Datei?
 
NOERGL schrieb:
Ok, noch ein paar Fragen:

1) Welchen Webserver benutzt du, Apache nehme ich mal an, in einer 2.0.xx Version?
2) Hast du das Semikolon in deiner php.ini Datei vor dem
extension=php_mysqli.dll rausgenommen? Nehme ich mal stark an ...
3) PHP ist bei dir als CGI-Modul im Webserver angebunden? Wo/in welchem Verzeichnis befindet sich deine php.ini Datei?

1) Genau... Apache 2.0.55
2) Ja, das hab ich... (bzw. der eintrag war nicht vorhanden..
;extension=php_mysql.dll
wurde bei mir zu
extension=php_mysqli.dll
^^darf man das so machen? also die php_mysqli.dll ist im verzeichnis ext vorhanden.
3)die php.ini ist im system32 ... und php scripts funktionieren auch wunderbar.. nur mit dem mysql haperts n bisschen ;)
phpinfo(); zeigt mir auch nix von mysql an. muss also irgend ein fehler sein, dass der die datenbank nicht kennt, oder?

lg
 
Mmh, ich hab noch nicht allzuviel mit der 5er MySQL gearbeitet, sondern bin immer noch auf der 4.1er geblieben, allerdings wunderte mich schon, dass die mysql-Funktionen nicht funktionieren sollen.

Habe deshalb mal eben eine Konfiguration wie bei dir aufgesetzt (Apache 2.0.55, PHP 5.1.1, MySQL 5.0.16) und was soll ich sagen - keine Fehlermeldungen, sowohl bei Verwendung der mysql- als auch bei der mysqli-Extension. Ich habe die beiden sogar parallel aktiviert in meiner php.ini.

Hast du in deiner php.ini den Extension Pfad gesetzt? Müsste ungefähr so aussehen:
extension_dir = "d:\programme\php-5.1.1\ext\"
 
Zuletzt bearbeitet:
Hmm.. komisch...
das Extension_dir war bei mit ohne " und mit schrägstrichen (so war es in dem buch erklärt) aber deine schreibweise bringt mich auch noch nicht weiter.

vllt könntest du mir eine schritt-für-schritt anleitung schreiben... dann kann ich sehen, was ich nicht habe oder falsch gemacht habe.

lg FreeZeY
 
Ok,

die Reihenfolge, ob du Apache, PHP oder MySQL installierst, ist erstmal prinzipiell egal.

Für PHP 5 nimmst du das ZIP-Archiv (ca. 8,6MB) und entpackst es irgendwohin, als Beispiel
nach "d:\programmme\php-5.1.1".

Den Apache habe ich mit dem Installer nach "d:\programme\apache2" installiert.

MySQL 5.0.16 nach "d:\programme\mysql\MySQL Server 5.0".

Lege am besten gleich ein neues Schema in MySQL an sowie einen zugehörigen User mit allen
Rechten auf dieses Schema. Sinnvollerweise machst du das mit dem MySQL Administrator.

Apache-Konfiguration
-------------------------------------------------------------------------------------------

In meiner Beispielkonfiguration habe ich die Apache httpd.conf um folgende Zeilen ergänzt,
um PHP als CGI einzubinden:

#
# PHP 5 as CGI
ScriptAlias /php/ "d:/programme/php-5.1.1/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php-cgi.exe"

PHP5-Konfiguration
-------------------------------------------------------------------------------------------

Für die php.ini nimmst du das php.ini-recommended, ersetzt die Zeile extension_dir = "./"
durch:

extension_dir = "d:\programme\php-5.1.1\ext\"

aktivierst die mysql und mysqli Extensions

extension=php_mysql.dll
extension=php_mysqli.dll

und kopierst die Datei anschliessend in dein Windows-Verzeichnis.

Für den Anfang solltest du auch display_errors auf On setzen.


Starte nun sicherheitshalber nochmal deinen Apache neu.


Erzeuge dir nun eine phpinfo.php Datei in deinem htdocs-Verzeichnis einfach nur mit dem
Aufruf:

<?php
phpinfo();
?>

Der Aufruf der Datei sollte dir nun ein neues Segment mit mysql und mysqli anzeigen.
 
Komisch....... :(
Na ja, ich hab mal meine PHP.ini und ein HTML-Dokument der Ausgabe von phpinfo() angehängt.
Was mir dort aufgefallen ist, dass in der ausgabe von phpinfo folgendes rauskam:
extension_dir C:\php5
obwohl ich in der php.ini
extension_dir = "c:\php\ext\"
stehen habe.
Ich habe jetzt testweise meinen order ext nach ins root von c: kopiert und ihn dort php5 genannt. ist aber auch keine veränderung.

Vllt sagen dir/euch die anhänge mehr...
lg FreeZeY
 

Anhänge

richtig. ich benutze ja auch mysqli ... habs aber mal abgeändert.. geht auch net. daran lags also nicht.
lg FreeZeY
 
Zurück
Oben