Fatale fout: aanroep naar ongedefinieerde functie mysql_connect()

Ik heb PHP, MySQL en Apache ingesteld. localhost()voor PHP en het werkt goed. Maar nadat ik MySQL heb gedownload, meldt het:

Fatale fout: aanroep naar ongedefinieerde functie mysql_connect()

Hoe kan ik dit oplossen?


Antwoord 1, autoriteit 100%

Je hebt geüpgraded naar PHP 7 en nu is mysql_connectverouderd. Controleer de jouwe met:

php -version

Verander het in mysqli_connectzoals in:

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

Als u verouderde PHP upgradet, staat u nu voor de taak om al uw mysql_*-functies te upgraden met mysqli_*-functies.


Antwoord 2, autoriteit 66%

Als je deze foutmelding krijgt na het upgraden naar PHP 7.0, gebruik je verouderde bibliotheken.

mysql_connect — Open een verbinding met een MySQL-server
Waarschuwing
Dit
extensie is verouderd in PHP 5.5.0 en is verwijderd in PHP
7.0.0. In plaats daarvan moet de MySQLi- of PDO_MySQL-extensie worden gebruikt.

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


Antwoord 3, autoriteit 62%

Open je terminal en voer de opdracht balg uit.

sudo apt-get install mysql-server

Als je PHP gebruikt, moet je ook de php-module voor mysql 5 installeren:

sudo apt-get install php5-mysql

Antwoord 4, autoriteit 13%

Controleer of uw installatie van PHP is gecompileerd met mysql-ondersteuning. Maak een testwebpagina met <?php phpinfo(); exit(); ?>en laad het in uw browser. Zoek op de pagina naar MySQL. Als je het niet ziet, moet je PHP opnieuw compileren met MySQL-ondersteuning, of een PHP-pakket opnieuw installeren waarin het is ingebouwd


Antwoord 5, autoriteit 11%

PHP.INI

Controleer of je vergeten bent de onderstaande opties in te schakelen (laadt de modules voor onder andere mysql):

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

Antwoord 6, autoriteit 11%

Gebruik.
<?php $con = mysqli_connect('localhost', 'username', 'password', 'database'); ?>

In PHP 7.
Je hebt waarschijnlijk PHP 7 in XAMPP. Je hebt nu twee opties: MySQLi en PDO.


Antwoord 7, autoriteit 8%

Deze fout komt alleen voor uw PHP-versie v7.0.
je kunt deze vermijden met PHP v5.0
anders

gebruik het

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

ik heb alleen mysqli van mysql gemaakt


Antwoord 8, autoriteit 6%

Voor gebruikers van CPanel: als u deze fout ziet en u heeft PHP 5.x al geselecteerd voor de site, is er mogelijk een CPanel-update die mysqlen mysqliPHP-extensies.

Om de extensies te controleren en in te schakelen:

  1. Ga naar Selecteer PHP-versiein CPanel
  2. Zorg ervoor dat je PHP 5.x hebt geselecteerd
  3. Zorg ervoor dat de PHP-extensies mysqlen mysqlizijn aangevinkt

Antwoord 9, autoriteit 4%

Ik had hetzelfde probleem op RHEL6. Het blijkt dat het mysql.ini-bestand in /etc/php.d alleen een modulenaam had, maar een volledige padnaam nodig had. Op mijn RHEL6-systeem is de invoer die werkt:

; Enable mysql extension module
extension=/usr/lib64/php/modules/mysql.so

Na het wijzigen van het bestand, herstartte ik apache en alles werkte.


Antwoord 10, autoriteit 4%

Een oplossing zou kunnen zijn om adapterfuncties zoals deze te gebruiken om mysqlite gaan gebruiken in plaats van mysqlover je hele applicatie:

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);
    }
}

Antwoord 11, autoriteit 2%

Gebruik Windows 8 en dit probleem is opgelost door de omgevingsvariabelen te wijzigen

volg deze stappen:
Open de eigenschappen van mijn computer->geavanceerde systeeminstellingen->Omgevingsvariabelen.
Selecteer onder ‘systeemvariabelen’ ‘pad’ en klik op ‘bewerken’
Voeg in ‘variabele waarde’ ‘C:\php;’ toe OF het pad waar php is geïnstalleerd.

klik op OK, pas de instellingen toe en start het systeem opnieuw op.
Het zou moeten werken.


Antwoord 12, autoriteit 2%

Hier is een snelle oplossing:

Alle pro’s zullen me waarschijnlijk haten vanwege dit antwoord. Maar ik kreeg dezelfde fout op een server: Fatale fout: Uncaught Error: Call to undefined function mysql_connect()die PHP 7 gebruikte. Had geen tijd om alle mysql-code te herschrijven, dus een snelle, tijdelijke oplossing als iemand het nodig heeft, is in CPANEL om te zoeken naar PHP-configuratieen de versie voor dat account te wijzigen in iets als PHP 5.4 in plaats van PHP 7. Daarna werkte de code prima zonder de bovenstaande fout.


Antwoord 13, autoriteit 2%

Als je Windows10, PHP 7.2 gebruikt en verbinding probeert te maken met mysql.
Als deze fout is opgetreden

Ongevangen fout: aanroep naar ongedefinieerde functie mysqli() in

Voer de volgende stappen uit om het correct te krijgen.

  1. Ga naar de PHP-installatiemap,
  2. Controleer op php.ini-bestand, (Alleen dev, prod-bestand is aanwezig, dan een van de bestanden als php.ini-bestand)
  3. Zoek naar “extension=mysqli” en verwijder de “;” ervoor.
  4. Zoek naar “extension_dir” en vermeld het pad van de map “ext”.
  5. Start de applicatie opnieuw.

Ik hoop dat dit iemand helpt.


Antwoord 14

Mijn oplossing is hier (ik moest alleen de laatste slash (NB: achterwaartse slashes) verwijderen uit PHPIniDir 'c:\PHP\'): Fatale fout: aanroep naar niet-gedefinieerde functie mysql_connect() kan niet oplossen


Antwoord 15

Controleer of de mysqli-module is geïnstalleerd voor uw PHP-versie

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

De module inschakelen

$ sudo phpenmod mysqli

Antwoord 16

Deze code kan u helpen

<?php 
$servername = "localhost";
$username = "root";
$password = "";
$con = new mysqli($servername, $username, $password);
?>

Maar verander de “servernaam”, “gebruikersnaam” en “wachtwoord”


Antwoord 17

Het probleem treedt op wanneer u mysql_connectgebruikt in uw coderegels, dus voeg het toe zoals in mysqli_connecten het zal het probleem oplossen.
U moet dan ook mysqligebruiken in uw coderegels, anders zou het probleem opnieuw de kop opsteken.
Het voorbeeld mysql_select_dbis dan mysqli_select_dbvoor het selecteren van Database.

Other episodes