PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MySQL und PHP -> 'mysqli' not found! :(


kahlchen
2009-11-16, 22:52:48
//Weiter unten im Thread, genau HIER (http://www.forum-3dcenter.org/vbulletin/showthread.php?p=7665726#post7665726), ist die Lösung für mein Problem.

Hallo,
ich erhalte folgenden Fehler beim Ausführen eines Test-PHP-Skripts:
Fatal error: Class 'mysqli' not found in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\test.php on line 24
In Zeile 24 steht wird eben die Datenbankverbindung mittels "mysqli" aufgebaut. Und "mysql" möchte ich wegen der fehlenden Objektorientierung nicht nehmen.

Heruntergeladen und somit verwendet wird folgendes:
php-5.2.11-Win32-VC6-x86.zip
mysql-5.1.40-winx64.msi
apache_2.2.14-win32-x86-no_ssl.msi
Windows 7 64bit Professional

Weiß jemand, woran das liegen könnte?

- bei extension habe ich schon das Semikolon vor "php_mysqli.dll" und "php_mysql.dll" entfernt.

Marscel
2009-11-16, 23:04:20
Du hast den Server aber einmal neugestartet, nachdem du die Semikolon entfernt hast?

kahlchen
2009-11-17, 11:01:46
Du hast den Server aber einmal neugestartet, nachdem du die Semikolon entfernt hast?

Hm, daran habe ich nicht gedacht aber das passierte dann ja spätestens nach einem Neustart des Rechners denke ich, daran liegt es also nicht :(
Ich hab bei der PHP Version eine "thread-sichere" genommen, ohne jedoch genau zu wissen, was diese macht :redface: , liegts daran vllt?
Und in der PHPinfo steht auch nichts weiter von MySQL, falls das dort irgendwie als Unterpunkt vorkommen müsste.

wry
2009-11-17, 11:13:55
Installation on Windows Systems

On Windows, PHP is most commonly installed using the binary installer. Once PHP has been installed, some configuration is required to enable mysqli and specify the client library you want it to use.

As mentioned earlier, the mysqli extension is not enabled by default, so the php_mysqli.dll DLL must be enabled inside of php.ini. In order to do this you need to find the php.ini file (typically located in c:\php), and make sure you remove the comment (semi-colon) from the start of the line extension=php_mysqli.dll, in the section marked [PHP_MYSQLI].

Also, if you want to use the MySQL Client Library with mysqli, you need to make sure PHP can access the client library file. The MySQL Client Library is included as a file named libmysql.dll in the Windows PHP distribution. This file needs to be available in the Windows system's PATH environment variable, so that it can be successfully loaded. See the FAQ titled "How do I add my PHP directory to the PATH on Windows" for information on how to do this. Copying libmysql.dll to the Windows system directory (typically c:\Windows\system) also works, as the system directory is by default in the system's PATH. However, this practice is strongly discouraged.

On Windows, for PHP versions 5.3 and newer, the mysqli extension uses the MySQL Native Driver by default. This means you don't need to worry about configuring access to libmysql.dll, you just need to make sure the extension is enabled in the php.ini file.

As with enabling any PHP extension (such as php_mysqli.dll), the PHP directive extension_dir should be set to the directory where the PHP extensions are located. See also the Manual Windows Installation Instructions. An example extension_dir value for PHP 5 is c:\php\ext.


Quelle: http://www.php.net/manual/en/mysqli.installation.php


Darf man fragen warum du nicht ein Komplettpaket ala Xampp (http://de.wikipedia.org/wiki/XAMPP) verwendest. Dort kann man mysqli soweit ich weiß per Mausklick aktivieren? :smile:

kahlchen
2009-11-17, 11:15:58
Darf man fragen warum du nicht ein Komplettpacket ala Xampp (http://de.wikipedia.org/wiki/XAMPP) verwendest. Dort kann man mysqli soweit ich weiß per Mausklick aktivieren? :smile:

Natürlich. Es WAMP wird in meiner Diplomarbeit verwendet und da kommt ein vorkonfiguriertes Tool nicht so pralle ;)
Deinen Link habe ich schon versucht, klappt leider nicht.

wry
2009-11-17, 11:50:17
Stimmt denn das "Loaded Configuration File" das per phpinfo() angezeigt wird mit dem überein, welches du editiert hast?

mysql + mysqli sollten als Punkte in der phpinfo vorhanden sein, zummindest bei mir hier der Fall.

Edit:
Vielleicht hilft das hier weiter: http://stackoverflow.com/questions/666811/fatal-error-class-mysqli-not-found

..und hiermit endet mein Latein auch schon :)

kahlchen
2009-11-17, 12:12:18
Stimmt denn das "Loaded Configuration File" das per phpinfo() angezeigt wird mit dem überein, welches du editiert hast?

Ja, C:\Windows\php.ini ist es und stimmt. Ich gucke mal den Link an und melde mich wieder. danke.

kahlchen
2009-11-17, 12:19:24
So, ich habe mal den COde ganz unten im Link ausgeführt und da sagt er mir, dass MySQLi nicht installiert ist, aber das wusste ich ja vorher auch schon mehr oder weniger ;)
Jemand noch eine Idee?

(Danke nochmal an alle Helfer!)

kahlchen
2009-11-17, 12:30:48
Nur mal zur Sicherheit, wie finde ich den heraus ob mein MySQL-Server überhaupt gestartet ist und wie starte ich ihn manuell neu?
Im Task-Manager unter "Services" wird ein "MySQL" ausgeführt, das müsste es eigentlich sein.

//EDIT
Entschuldigung für den Triple-Post

sei laut
2009-11-17, 12:32:11
Nimm mal testweise die MySQL 5.0xx Version.
Mit allen darüber habe ich verschiedene Probleme gehabt, irgendwie murksen die rum.

kahlchen
2009-11-17, 12:57:30
Eijeijei, es geht! :)
Diese Anleitung hier ist perfekt, da auch aktuelle Versionen.
-> http://cyleft.wordpress.com/2008/05/09/installing-apache-22-php-52-mysql-5-on-windows-32bit-or-x64/

Ich hatte scheinbar gleich zwei Fehler in der httpd.conf. Zum einen habe ich " " für die Pfadangabe verwendet. Zum anderen habe ich statt "/" dies hier "\" genommen.

Gutes gelingen falls es jemand durch diesen Post versucht und danke an alle Helfer! :)

The_Invisible
2009-11-17, 12:59:18
Nur mal zur Sicherheit, wie finde ich den heraus ob mein MySQL-Server überhaupt gestartet ist und wie starte ich ihn manuell neu?
Im Task-Manager unter "Services" wird ein "MySQL" ausgeführt, das müsste es eigentlich sein.

//EDIT
Entschuldigung für den Triple-Post

in der kommandozeile ein "telnet localhost 3306" ausführen und schauen ob eine antwort kommt, ansonsten halt irgendeinene mysql client verwenden und versuchen zu verbinden.

leider kann ich dir ansonsten nicht helfen da ich mit WAMP keine erfahrung habe bzw auch keinem empfehlen kann.

mfg

wry
2009-11-17, 12:59:27
Ich glaub nicht, dass das Problem an dem Mysql Dienst liegt (also zummindest jetzt noch nicht :smile:).

Ich kann hier z.b. ruhig den MySQL server runterfahren, dann spuckt php nur die Fehlermeldung: can't connect to mysql server.. aus.

Vielleicht hilfts wenn du uns deine phpinfo postest.

Edit:
Too late .. ^^

kahlchen
2009-11-17, 13:01:19
Ui, da kamen ja nochmal zwei Antworten. Also danke nochmal! Falls ihr es nicht gesehen habt, schaut meinen letzten Post (dieser natürlich ausgenommen) an. Danke! :)