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_connect
verouderd. Controleer de jouwe met:
php -version
Verander het in mysqli_connect
zoals 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 mysql
en mysqli
PHP-extensies.
Om de extensies te controleren en in te schakelen:
- Ga naar Selecteer PHP-versiein CPanel
- Zorg ervoor dat je PHP 5.x hebt geselecteerd
- Zorg ervoor dat de PHP-extensies
mysql
enmysqli
zijn 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 mysqli
te gaan gebruiken in plaats van mysql
over 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.
- Ga naar de PHP-installatiemap,
- Controleer op php.ini-bestand, (Alleen dev, prod-bestand is aanwezig, dan een van de bestanden als php.ini-bestand)
- Zoek naar “extension=mysqli” en verwijder de “;” ervoor.
- Zoek naar “extension_dir” en vermeld het pad van de map “ext”.
- 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_connect
gebruikt in uw coderegels, dus voeg het toe zoals in mysqli_connect
en het zal het probleem oplossen.
U moet dan ook mysqli
gebruiken in uw coderegels, anders zou het probleem opnieuw de kop opsteken.
Het voorbeeld mysql_select_db
is dan mysqli_select_db
voor het selecteren van Database.