PHP Error?
Kann mir hier jemand helfen?
<?php
$server = "//ZENSIERT//";
$datenbank = "//ZENSIERT//";
$username = "//ZENSIERT//";
$passwort = "//ZENSIERT//";
$link = mysql_connect($server, $username, $passwort);
if (!$link)
die(mysql_error());
$db = mysql_select_db($datenbank, $link);
if ($db) {
$sql_befehl = 'INSERT INTO konto (id, name, konto) VALUES ("", "Musterman", 12345);';
mysql_query($sql_befehl, $link);
}
mysql_close($link);
?>
<html>
<head>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
</head>
<body>
</body>
</html>
Fehlermeldung:
Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\Program Files (x86)\xampp\htdocs\SofortPay24\index.php:7 Stack trace: #0 {main} thrown in C:\Program Files (x86)\xampp\htdocs\SofortPay24\index.php on line 7
3 Antworten
Die mysql-Erweiterung wurde mit PHP 7 entfernt. Der schnellste Fix wäre der Umstieg auf mysqli. Dafür musst du bei deinen Funktionen jeweils nur ein i ergänzen. So wird bspw. mysql_connect zu mysqli_connect.
Des Weiteren würde ich dazu raten, auch das HTML valid zu halten (auch wenn es nicht im Zusammenhang mit deinem Fehler steht).
1) Der Doctype (vor dem html-Tag) fehlt.
<!doctype html>
2) Im head-Bereich fehlt ein title-Tag (für den nichtleeren Seitentitel).
PS.: Dein INSERT-Statement sieht seltsam aus, da du für die ID einen leeren String angibst. Ist das wirklich beabsichtigt?
Wenn es sich bei der id-Spalte um einen Index mit aktivierten auto_increment handelt, sollte der Query so aussehen, um den Increment-Generator zu aktivieren:
INSERT INTO konto (name, konto) VALUES ("Musterman", 12345);
Wie TechPech schon schrieb, sind mysql-Befehle seit geraumer Zeit verboten. Du musst dein Script also anpassen.
Änderung 1:
$link = mysql_connect($server, $username, $passwort);
// Ersetzen durch:
$link = new mysqli($server, $username, $passwort, $datenbank);
Änderung 2:
$sql_befehl = 'INSERT INTO konto
(id, name, konto)
VALUES ("",
"Musterman",
12345);';
// Ersetzen durch:
$link->query('INSERT INTO konto (id, name, konto) VALUES ("", "Musterman", 12345)');
Änderung 3:
mysql_close($link);
// Ersetzen durch:
$link->close();
mysql befehle sind schon seit php 7. nicht mehr erlaubt
du musst entweder mysqli nehmen oder pdo
sprich dein tutorial ist uralt und taugt nix
btw : natürlich sollte auch ein mysql mod im php installiert und aktivert sein .