webentwicklung-frage-antwort-db.com.de

Schwerwiegender Fehler: Nicht erfasster Fehler: Aufruf der undefinierten Funktion mysql_connect ()

Ich versuche, eine einfache Verbindung mit XAMPP und MySQL-Server herzustellen, aber wenn ich versuche, Daten einzugeben oder eine Verbindung zur Datenbank herzustellen, wird diese Fehlermeldung angezeigt.

Schwerwiegender Fehler: Nicht gefundener Fehler: Rufen Sie die undefinierte Funktion mysql_connect () in C:\xampp\htdocs\register.php: 22 auf
Stack-Trace: # 0 {main} in C:\xampp\htdocs\register.php in Zeile 22

Beispiel für Zeile 22:

$link = mysql_connect($mysql_hostname , $mysql_username);
62
Demeteor

mysql_* Funktionen wurden in PHP 7 entfernt.

Sie haben wahrscheinlich PHP 7 in XAMPP. Sie haben jetzt zwei Alternativen: MySQLi und PDO .

Außerdem ist hier eine nette Wiki-Seite über PDO.

103
efik

Sie können mysqli_connect($mysql_hostname , $mysql_username) anstelle von mysql_connect($mysql_hostname , $mysql_username) verwenden.

mysql_* Funktionen wurden ab PHP entfernt. 7. Sie haben jetzt zwei Alternativen: MySQLi und PDO .

34
user6128099

Es wird empfohlen, entweder die MySQLi- oder die PDO-Erweiterung zu verwenden. Es wird nicht empfohlen, die alte mysql-Erweiterung für die Neuentwicklung zu verwenden, da sie in PHP 5.5.0 veraltet und in PHP 7 entfernt wurde .

PHP bietet drei verschiedene APIs, um sich mit MySQL zu verbinden. Nachfolgend zeigen wir die APIs, die von den Erweiterungen mysql, mysqli und PDO bereitgestellt werden. Jedes Code-Snippet stellt eine Verbindung zu einem MySQL-Server her, der auf "example.com" ausgeführt wird, wobei der Benutzername "username" und das Kennwort "password" verwendet werden. Und eine Abfrage wird ausgeführt, um den Benutzer zu begrüßen.

Beispiel 1 Vergleichen der drei MySQL-APIs

<?php
// mysqli
$mysqli = new mysqli("example.com", "username", "password", "database");
$result = $mysqli->query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");
$row = $result->fetch_assoc();
echo htmlentities($row['_message']);

// PDO
$pdo = new PDO('mysql:Host=example.com;dbname=database', 'username', 'password');
$statement = $pdo->query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");
$row = $statement->fetch(PDO::FETCH_ASSOC);
echo htmlentities($row['_message']);

// mysql
$c = mysql_connect("example.com", "username", "password");
mysql_select_db("database");
$result = mysql_query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");
$row = mysql_fetch_assoc($result);
echo htmlentities($row['_message']);
?>

Ich schlage vor, Sie probieren MySQLi und PDO aus und finden heraus, welches API-Design Sie bevorzugen.

Lesen Sie Auswählen einer API und Warum sollte ich mysql_ * -Funktionen nicht in PHP verwenden?

20
Abhijit Jagtap

Wie andere Antworten vermuten lassen ... Ein Typ (aus welchem ​​Grund auch immer) hat entschieden, dass Ihr alter Code nicht funktionieren sollte, wenn Sie Ihr PHP aktualisieren, weil er es besser weiß als Sie und sich nicht darum kümmert, was Ihr Code tut oder wie einfach es ist Sie zu aktualisieren.

Wenn Sie Ihr Projekt nicht über Nacht aktualisieren können, können Sie dies

führen Sie ein Downgrade Ihrer Version von PHP auf die jeweils funktionierende Version durch

oder...

verwenden Sie eine Unterlegscheibe (eine Art Polyfill) wie https://github.com/dshafik/php7-mysql-shim oder https://github.com/dotpointer/mysql-shim) , und suchen Sie dann irgendwo in Ihrem Code einen Platz für include_once("choice_shim.php");

So bleibt Ihr alter PHP Code so lange am Laufen, bis Sie Lust auf ein Update haben ...

7
konzo

mysql_* Funktionen wurden in PHP 7 entfernt.

Sie haben jetzt zwei Alternativen: MySQLi und PDO .

Das Folgende ist ein Vorher-Nachher-Vergleich (-) und Nachher-Vergleich (+) einiger häufiger Änderungen an MySQLi, die direkt aus dem Arbeitscode entnommen wurden:

-if (!$dbLink = mysql_connect($dbHost, $dbUser, $dbPass))
+if (!$dbLink = mysqli_connect($dbHost, $dbUser, $dbPass))

-if (!mysql_select_db($dbName, $dbLink))
+if (!mysqli_select_db($dbLink, $dbName))

-if (!$result = mysql_query($query, $dbLink)) {
+if (!$result = mysqli_query($dbLink, $query)) {

-while ($row = mysql_fetch_array( $result, MYSQL_ASSOC )) {
+while ($row = mysqli_fetch_array( $result, MYSQLI_ASSOC )) {

-mysql_close($dbLink);
+mysqli_close($dbLink);
7
user664833

mysql_ Funktionen wurden aus PHP entfernt. 7. Sie können jetzt MySQLi oder PDO verwenden.

MySQLi Beispiel:

mysqli_connect($mysql_hostname, $mysql_username, $mysql_password, $mysql_dbname);

mysqli_connect Verweislink

2
Dhaval Ajani

Stellen Sie sicher, dass Sie nicht wie in meinem Fall einen Tippfehler begangen haben

msyql_fetch_assoc sollte mysql sein

1
Hammad Khan

Sie haben diesen Fehler erhalten, weil die mysql_connect -Funktion (eigentlich alle mysql_* -Funktionen) aus PHP 7 entfernt wurde. Sie können jetzt MySQLi oder - verwenden. PDO .

Beispiel:

$mysqli = new mysqli($hostname, $username, $password, $database);
1
rashedcs