2012-05-16 21 views
30

Ich habe PHP, MySQL und Apache eingerichtet. localhost() für PHP und es funktioniert gut. Aber nachdem ich MySQL heruntergeladen habe, meldet es:Schwerwiegender Fehler: Aufruf zu undefinierter Funktion mysql_connect()

Fatal error: Call to undefined function mysql_connect()

Wie kann ich das beheben?

+0

Haben Sie Apache neu starten, nachdem Sie die Pakete installiert? – Devator

+0

http://nz.php.net/manual/en/mysql.installation.php – zerkms

+1

Sie haben Ihre Frage getaggt [mysql-error-1064] - wie bekommen Sie das, wenn Ihr Skript nicht mit MySQL kommunizieren kann? – Repox

Antwort

6

Überprüfen Sie, ob Ihre Installation von PHP mit MySQL-Unterstützung kompiliert wurde. Erstellen Sie eine Testwebseite mit <?php phpinfo(); exit(); ?> und laden Sie sie in Ihren Browser. Durchsuchen Sie die Seite nach MySQL. Wenn Sie es nicht sehen, müssen Sie PHP mit MySQL-Unterstützung neu kompilieren oder ein PHP-Paket neu installieren, in dem es eingebaut ist

+4

und hier ist die Quelle, die Sie kopiert von http://www.somacon.com/p109.php –

+1

ja natürlich für seine Hilfe! –

+0

Ich habe ähnliches Problem, ich sehe keine MySQL in meiner Testseite: https://jsfiddle.net/ad0gd90y/. Stattdessen habe ich nur "mysqlnd" gesehen. Sollte ich MySQL vor PHP installieren? Wie rekompiliere ich PHP mit MySQL [email protected] – rosemary

29

Ö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 das PHP-Modul für MySQL installieren 5:

sudo apt-get install php5-mysql 
1

Am mit Windows 8 n wurde dieses Problem durch eine Änderung der Umgebungsvariablen

aufgelöst Folge Diese Schritte: Öffnen Sie die Eigenschaften meines Computers-> erweiterte Systemeinstellungen-> Umgebungsvariablen. Unter 'Systemvariablen', wählen Sie 'Pfad' und klicken Sie auf 'Bearbeiten' In 'Variablenwert', fügen Sie 'C: \ php;' ODER der Pfad wo PHP installiert ist.

Klicken Sie auf OK, übernehmen Sie die Einstellungen und starten Sie das System neu. Es sollte funktionieren.

4
PHP.INI 

Überprüfen Sie, ob Sie die folgenden Optionen (lädt die Module für mysql unter anderem) zu ermöglichen vergessen:

; Directory in which the loadable extensions (modules) reside. 
; http://php.net/extension-dir 
; extension_dir = "./" 
; On windows: 
extension_dir = "ext" 
2

ich das gleiche Problem auf RHEL6 hatte. Es stellt sich heraus, dass die Datei mysql.ini in /etc/php.d nur einen Modulnamen hatte, aber einen vollständigen Pfadnamen benötigte. Auf meinem RHEL6 System der Eintrag, der funktioniert, ist:

; Enable mysql extension module 

extension=/usr/lib64/php/modules/mysql.so 

Nachdem Sie die Datei ändern, ich neu gestartet Apache und alles funktionierte.

14

Wenn Sie nach dem Upgrade auf PHP 7.0 diesen Fehler erhalten, verwenden Sie veraltete Bibliotheken.

mysql_connect — Open a connection to a MySQL Server
Warning
This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0. Instead, the MySQLi or PDO_MySQL extension should be used.

Mehr hier: http://php.net/manual/en/function.mysql-connect.php

+0

Dies sollte als akzeptierte Antwort markiert werden - es ist eine schlechte Übung, immer noch mysql_ * -Anrufe zu verwenden. – Skytiger

22

Use "mysqli_connect"

$con = mysqli_connect("127.0.0.1","root","pass","your_database"); 

es gonna Arbeit, feste i mein Problem mit diesem.

0

Überprüfen Sie, ob Mysqli Modul für Ihre PHP-Version

$ ls /etc/php/7.0/mods-available/mysql* 
/etc/php/7.0/mods-available/mysqli.ini /etc/php/7.0/mods-available/mysqlnd.ini 

Aktivieren Sie das Modul

$ sudo phpenmod mysqli 
0

Dieser Kodex installiert ist, können Sie Hilfe

<?php 

$servername = "localhost"; 
$username = "root"; 
$password = ""; 


$con = new mysqli($servername, $username, $password); 

?> 

Aber ändern Sie die "servername", "Benutzername" und "Passwort"

0

Hier ist eine schnelle Lösung:

Alle Profis werden mich wahrscheinlich für diese Antwort hassen. Aber ich habe den gleichen Fehler auf einem Server: Fataler Fehler: Uncaught Fehler: Aufruf zu undefinierter Funktion mysql_connect() das war mit PHP 7. Hatte keine Zeit, um alle mysql-Code so eine schnelle, temporäre Korrektur neu zu schreiben, wenn jemand braucht Es ist in CPANEL, nach PHP-Konfiguration zu suchen und die Version für dieses Konto zu etwas wie PHP 5.4 anstelle von PHP 7 zu ändern. Dann funktionierte der Code gut ohne den obigen Fehler. mit mysqli statt mysql über Ihre gesamte Anwendung zu starten

0

könnte eine Lösung seine Adapterfunktionen wie diese verwenden:

if (!function_exists('mysql_connect')) { 
    function mysql_connect($host = '', $user = '', $password = '', $database = '', $port = 0, $socket = '') { 
     return mysqli_connect($host, $user, $password, $database, $port, $socket); 
    } 
} 


if (!function_exists('mysql_select_db')) { 
    function mysql_select_db($link, $dbname) { 
     mysqli_select_db($link, $dbname); 
    } 
} 
-1

Das Problem tritt auf, wenn Sie mysql_connect in Ihrer Codezeile verwenden so einfach hinzufügen es wie in mysqli_cOnnect und es wird das Problem lösen.
müssen Sie dann auch mysqli in Ihren Codezeilen verwenden oder das Problem würde wieder auftauchen.
Beispiel mysql_select_db wird dann mysqL_select_db sein.
Das ist für die Auswahl der Datenbank.

Dank hoffen, dass diese

1

Dieser Fehler hilft nur für Ihre PHP-Version v7.0 kommt. Sie können diese mit Hilfe von PHP v5.0 vermeiden sonst

verwenden es

mysqli_connect("localhost","root","") 

i nur Mysqli von mysql gemacht

Verwandte Themen