Synology-Forum.nl
Packages => Officiële Packages => Maria DB => Topic gestart door: beste-els op 08 juli 2021, 12:36:48
-
Mijn PHP scripts (versie 7.4) werken al enkele jaren met de database van MariaDB5 op mijn NAS. Loopt als een trein.
Met het oog op de naderende update van DSM 6 naar 7 probeer ik mijn PHP scripts te laten praten met MariaDB10. Dat valt niet mee! Nadat ik MariaDB10 had geinstalleerd en MariaDB5 verwijderd probeerde ik het een en ander uit.
Werkt natuurlijk voor geen meter! Het probleem spitst zich toe op de connectie naar de database. Voorheen bestond die connectie uit: $dbhost = 'localhost'; (simpeler kan niet!). Nu wil het alleen werken met $dbhost = '192.168.1.109:3307'; Ik moet dus expliciet het IP address van mijn NAS aangeven plus het poortnummer.
Ben ik misschien ergens een special setting vergeten tijdens of na het installeren van MariaDB10?
-
Beter is : $dbhost = '127.0.0.1:3307’
En nee, je bent geen instelling vergeten.
Gewoon accepteren dat het zo moet.
En als je het config bestand op een centrale plek opslaat, hoef je het alleen met een include() te laden.
-
Zo los ik het op voor het geval je meerdere databases gebruikt.
Het bestand connectNoDB.php bevat deze code (zonder databasenaam) :
<?php
$SQL_host = '127.0.0.1:3307';
$SQL_user = 'username';
$SQL_password = 'password';
$db = new MySQLi( $SQL_host, $SQL_user, $SQL_password );
$db->set_charset("utf8mb4");
$db->query("SET NAMES utf8mb4 COLLATE utf8mb4_general_ci");
// Check for errors
$db_result = TRUE;
if ( $db->connect_error )
{
$db_result = FALSE;
$db_msg = '<p>Connect failed: (' . $db->connect_errno . ') ' . $db->connect_error . '</p>';
}
?>
Dit bestand sla je centraal op.
Vervolgens gebruik je dit in een PHP bestand :
<?php
include('/pad/naar/connectNoDB.php');
if ( $db_result === TRUE )
{
$dbase = 'sylvester';
$db->select_db( $dbase );
// enzovoort
}
// enzovoort
?>
-
In elk hosts bestand staat dat 'localhost' naar 127.0.0.1 en naar ::1 moet resolven. Het lijkt er op dat deze Maria versie een url zonder toplevel domein gewoon niet probeert op te zoeken.
-
Beste Wyodor,
dank voor je antwoord. Ik heb een testje gedaan met hostname=127.0.0.1:3307 en dat loopt ook; het maakt het nog net iets eenvoudiger, vooral met porten.
Ik werk altijd al met een include file waarin zich het script bevindt voor de connectie naar de database. Dat is verreweg het eenvoudigste, zeker voor het onderhoud. Dat dit de default parameters zijn voor MariaDB10 wist ik niet.
Dank allen voor de moeite.