2013-03-25 18 views
5

ich das Internet für die Fehlerbehebung gesucht haben mit dieser "Call to undefined Funktion mysql_connect()" Fehler, aber keines der vorgeschlagenen Verfahren funktioniert ...PHP + MySQL Fatal error: Call to undefined Funktion mysql_connect() in

Wenn ich versuche, über PHP auf mysql zuzugreifen, bekomme ich diesen Fehler. Ich habe PHP Version 5.2.17 und MySQL 5.1.68 (mysql läuft außerhalb von PHP, ich habe versucht, Tabellen und Datenbanken usw. zu erstellen).

Kommentar- ich die Erweiterungen in der php.ini:

extension=php_mysql.dll 
extension=php_mysqli.dll 

und spezifiziert den Pfad zu diesen Erweiterungen.

Ich habe auch PHP und MySQL zu meiner PATH-Variable hinzugefügt. Ich benutze Apache 2.2. und ich habe den Server nach jeder Änderung neu gestartet.

Dies ist mein Code in PHP für Zugriff auf die Datenbank (aber ich nehme an, dass das Problem nicht in der Syntax ist):

<?php  
     $dbhost = 'localhost'; 
     $dbuser = 'root'; 
     $dbpass = 'pasw'; 
     $dbname = 'db'; 

     $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql'); 
     mysql_select_db($dbname); 
?> 

ich aus Ideen bin, wie dies zu beheben, kann u vorschlägt einige andere Fehlerbehebungs Tipps? Ich bin ziemlich neu in seiner Problematik ... Ich würde gerne MySQL benutzen, denn das ist das, was ich auf dem Server benutzen werde, wenn ich meine Webseite in Betrieb habe. Danke im Voraus!

EDIT: Das ist von Apache-Log:

[Mon Mar 25 13:50:42 2013] [error] [client 127.0.0.1] PHP Fatal error: Call to undefined function mysql_connect() in C:\\Web\\thenemis\\dbconnect.php on line 7, referer: http://localhost/thenemis/admin.php 
[Mon Mar 25 13:50:42 2013] [error] [client 127.0.0.1] File does not exist: C:/Web/favicon.ico 

EDIT2: Das von php info ist (ich glaube, dass das Problem mit einigen nicht näher bezeichnete Parameter in php.ini sein kann). Ich habe nirgends gelesen, dass ich einige andere Funktionen als Erweiterungen und Pfad zu ihnen angeben sollte, aber vielleicht lag ich falsch ... Was schlagen Sie vor?

mysql 

MySQL Support enabled 
Active Persistent Links 0 
Active Links 0 
Client API version 5.0.51a 

Directive Local Value Master Value 
mysql.allow_persistent On On 
mysql.connect_timeout 60 60 
mysql.default_host no value no value 
mysql.default_password no value no value 
mysql.default_port no value no value 
mysql.default_socket no value no value 
mysql.default_user no value no value 
mysql.max_links Unlimited Unlimited 
mysql.max_persistent Unlimited Unlimited 
mysql.trace_mode Off Off 
+2

Verwendung phpinfo(), um sicherzustellen, dass Sie richtig php.ini bearbeiten – tuffkid

+0

Sind Sie ein AMP-Stack mit (Lampe/Wampe/etc)? –

+0

Ich habe php, mysql und apache separat installiert (ich benutze keine WAMp oder irgendetwas) – Smajl

Antwort

6

Wie es hieß, bereits Gebrauch phpinfo() zur Bestimmung, ob mysql korrekt ausgeführt wird. Im Allgemeinen sollten Sie mysql nicht mehr mehr verwenden, sondern die neue, verbesserte Version von MySQL,

existiert Mysqli http://php.net/manual/de/book.mysqli.php

Sie können zusätzlich programmatisch überprüfen, ob eine Funktion mit method_exists Methode namens

+0

Seltsames ist gerade passiert. Ich habe meinen PC neu gestartet und ich habe es irgendwie funktioniert. Ich habe Apache nach jeder Änderung neu gestartet, aber es hat nicht geholfen. Irgendwie habe ich das Problem gelöst ... Danke für die Antwort - phpinfo() hat tatsächlich viel geholfen ... – Smajl

3

Versuchen Sie, diese zu nutzen:

$dbhost = 'localhost'; 
$dbuser = 'root'; 
$dbpass = 'pasw'; 
$dbname = 'db'; 

<?php 
// Create connection 
$con=mysqli_connect($dbhost,$dbuser,$dbpass,$dbname); 

// Check connection 
if (mysqli_connect_errno($con)) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 
?> 

Die MySQL-Unterstützung wird von PHP entfernt, also verwenden Sie stattdessen MySQLi oder PDO.

:)

0

habe ich den Pfad für PHP in den Systemvariablen von meinem Computer, bearbeiten den Pfad Wert C:/program files/php; und aktivierte extension=php_mysqli.dll in php.ini.

Dann habe ich diese Funktion

mysqli_connect($host,$username,$password)or die(mysql_error()); 

Und danach ein Neustart des Systems. Es hat für mich funktioniert; Ich hoffe es funktioniert für dich.

2

Überprüfen Sie, ob Ihre PHP-Installation mit MySQL-Unterstützung kompiliert wurde. Erstellen Sie eine Test-PHP-Datei mit <?php phpinfo(); exit(); ?> und führen Sie es in Ihrem Browser aus. Durchsuchen Sie die Seite nach dem Schlüsselwort 'MySQL'.Wenn Sie es nicht sehen, müssen Sie PHP mit MySQL-Unterstützung neu kompilieren oder ein PHP-Paket, das es eingebaut hat, neu installieren.

Öffnen Sie Ihr Terminal und führen Sie den Befehl "bellow" aus.

sudo apt-get install mysql-server 

Wenn Sie PHP laufen müssen Sie auch für mysql das PHP-Modul installieren

sudo apt-get install php5-mysql 
Verwandte Themen