Mijn provider heeft na jaren wachten de gebruikte php ver geupdate.

Nu krijg ik deze foutmelding:

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/harry-arends.nl/public_html/event/datacon.php on line 16

en op regel 6 staat:
$dblink=MYSQL_CONNECT($MySqlHostname, $MySqlUsername, $MySqlPassword) OR DIE("Could not connect to database server:".mysql_error()."<br>");       


Kan iemand mij begrijpelijk uitleggen hpoe ik dit op kan losssen.

Groetjes

Harry H. Arends
Ik raad aan om over te stappen op de mysqli-functies of PDO. De mysql-functies die je nu gebruikt zullen in PHP7 ter ziele gaan.

Tijdelijke optie is Deprecated meldingen verbergen, met dit bovenaan:
<?php
error_reporting(E_ALL ^ E_DEPRECATED);
?>
Het wordt al een hele tijd aangeraden om mysqli te gebruiken ipv mysql.

Hier een goed voorbeeld van W3Schools hoe je een query met mysqli uitvoert:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
    }
} else {
    echo "0 results";
}
$conn->close();
?>


Bron
Ter info: Dit is MySQLi met OO (Object Georiënteerd). Dit is te herkennen aan het pijltje.
Je kan ook de procedurele versie gebruiken van mysqli, en dat is het toevoegen van een 'i' en bij diverse functies een extra argument.

Ikzelf raad de OO-versie aan, omdat deze beter schaalbaar is. Je kan ook centrale foutafhandeling bouwen bijvoorbeeld.
Bedankt voor het antwoord.
De ene foutmelding opgelost, een andere erbij. Dit is de code om te MySql te connecten:
<?php
$MySqlHostname = "localhost";
$MySqlDatabase = "****";

if($_SERVER['SERVER_NAME']=="eibergen02"){
$MySqlUsername = "****";
$MySqlPassword = "****";
}else{
$MySqlUsername = "***";
$MySqlPassword = "*****";
}
//echo $MySqlUsername."/".$MySqlPassword."<br>";
/* make connection to database */
/* If no connection made, display error Message */
$dblink=MYSQLI_CONNECT($MySqlHostname, $MySqlUsername, $MySqlPassword, $MySqlDatabase) OR DIE("Could not connect to database server:".mysql_error()."<br>");

/* Select the database name to be used or else print error message if unsuccessful*/
//@mysql_select_db("$MySqlDatabase") OR DIE ("Could not select database".mysql_error()."<br>");

// General options
$version = "0.82 (beta)";
$maintenance = false;
$ledentabel = "leden";

$result = mysqli_query( "SET NAMES 'utf8'", $MySqlDatabase );
if ( $result === false )
{
echo '<p>De karakterset voor de verbinding kon niet op UTF-8 worden gezet. Melden aan Administrator</p>';
}
else
{
// echo '<p>De karakterset voor de verbinding is succesvol op UTF-8 gezet</p>';
}
?>
door een hersenbeschadiging na mijn CVA raak ik snel het overzicht kwijt
En mis ik veel wat voor anderen logisch is.
Pas je bericht even aan en gebruik code-tags. PHP tags zijn hier alleen bedoeld om naar de manual te linken.
Harry H Arends op 05/07/2017 09:26:10

Bedankt voor het antwoord.
De ene foutmelding opgelost, een andere erbij. Dit is de code om te MySql te connecten:
<?php
$MySqlHostname = "localhost";
$MySqlDatabase = "harryare";

if($_SERVER['SERVER_NAME']=="eibergen02"){
$MySqlUsername = "root";
$MySqlPassword = "geheim";
}else{
$MySqlUsername = "geheim";
$MySqlPassword = "geheim";
}
//echo $MySqlUsername."/".$MySqlPassword."<br>";
/* make connection to database */
/* If no connection made, display error Message */
$dblink=MYSQLI_CONNECT($MySqlHostname, $MySqlUsername, $MySqlPassword, $MySqlDatabase) OR DIE("Could not connect to database server:".mysql_error()."<br>");

/* Select the database name to be used or else print error message if unsuccessful*/
//@mysql_select_db("$MySqlDatabase") OR DIE ("Could not select database".mysql_error()."<br>");

// General options
$version = "0.82 (beta)";
$maintenance = false;
$ledentabel = "leden";

$result = mysqli_query( "SET NAMES 'utf8'", $MySqlDatabase );
if ( $result === false )
{
echo '<p>De karakterset voor de verbinding kon niet op UTF-8 worden gezet. Melden aan Administrator</p>';
}
else
{
// echo '<p>De karakterset voor de verbinding is succesvol op UTF-8 gezet</p>';
}
?>
door een hersenbeschadiging na mijn CVA raak ik snel het overzicht kwijt
En mis ik veel wat voor anderen logisch is.


Waar loop je nu op vast?
Mogelijk het feit dat:

<?php
$result = mysqli_query( "SET NAMES 'utf8'", $MySqlDatabase );
?>

om verschillende redenen niet correct is.

<?php
$result = mysqli_query($dblink, "SET NAMES 'utf8'");
?>
werkt ongetwijfeld beter.
Nog beter zou zijn:
<?php
$result = mysqli_set_charset($dblink, 'utf8');
?>
Dan is de client library ook op de hoogte van je bedoelingen.
Hallo Harry,

Pas alsjeblieft je reactie hierboven aan als dat je echte wachtwoord is.

Reageren