Synology-Forum.nl
Firmware => Synology DSM algemeen => Topic gestart door: allanyip op 10 augustus 2020, 11:51:12
-
Beste,
Ik wil een taak instellen in de taakplanner waarmee ik een php script oproep. Dit script maakt verbinding met een database middels de mysqli_connect() functie. Echter, als ik deze taak uitvoer, dan krijg ik een mail van de taakplanner terug dat deze is uitgevoerd, maar wel met de volgende foutmelding:
Huidige status: 255 (Onderbroken)
Standaard uitvoer/fout:
PHP Fatal error: Call to undefined function mysqli_connect() in /volume1/web/werk/nextcreatives/crm/includes/sql_connect.php on line 20
Ik vermoed dat de taakplanner een php versie gebruikt die mysqli_connect() niet kent. Vreemd, want als ik dit script uitvoer in de browser, via Web Station, dan kent hij deze functie wel gewoon. (PHP versie van Web Station is: 5.6.11. Hier ben ik achter gekomen door php -v in te typen in de cli.)
Iemand die mij hier verder mee kan helpen?
Alvast bedankt!
Allan
-
Niet teveel vermoeden, gissen en veronderstellen.
Wat is de code op regel 20?
-
Hier begint het mee:
$connect['host'] = "localhost";
$connect['username'] = "root";
$connect['password'] = "test";
$connect['database'] = "crm";
En dan op regel 20:
$connection = mysqli_connect($connect['host'], $connect['username'], $connect['password'])
-
Zet op regel 20 ook de databasenaam erbij.
Voor de volledigheid.
MariaDB5 gebruikt localhost
MariaDB10 gebruikt 127.0.0.1:3307
Probeer dit eens :
<?php
// MariaDB5
$link = mysqli_connect("localhost", "my_user", "my_password", "my_db");
// MariaDB10
$link = mysqli_connect("127.0.0.1:3307", "my_user", "my_password", "my_db");
if (!$link) {
echo "Error: Unable to connect to MySQL." . PHP_EOL;
echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
exit;
}
echo "Success: A proper connection to MySQL was made! The my_db database is great.<br />" . PHP_EOL;
echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL;
mysqli_close($link);
?>
-
Bovenstaande toegevoegd in mijn code, ik krijg geen foutmelding in de mail die ik terugkrijg van de taakplanner:
Huidige status: 255 (Onderbroken)
Standaard uitvoer/fout:
PHP Fatal error: Call to undefined function mysqli_connect() in /volume1/web/werk/nextcreatives/crm/includes/sql_connect.php on line 20
Fatal error: Call to undefined function mysqli_connect() in /volume1/web/werk/nextcreatives/crm/includes/sql_connect.php on line 20
En ook niet als ik mijn applicatie in de browser open. Het lijkt dus niet aan de credentials te liggen.
-
In DSM, open Web Station.
Klik PHP Settings.
Bewerk een PHP profiel
Kijk bij extenties of mysqli is aangevinkt.
Als ik die extensie uitzet, krijg ik de genoemde foutmelding.
-
Ik zie daar twee PHP versies, 5.6 en 7.0, waarvan ik weet dat 5.6 nu actief is. En daar stond mysqli al aangevinkt. Ik heb het voor de volledigheid ook maar even ingesteld in versie 7.0, daarna ook weer voor de zekerheid de webserver opnieuw gestart maar nog steeds zonder succes. Er is niks veranderd lijkt, want ik krijg nog steeds dezelfde foutmelding helaas.
-
Geef je een pad op bij het aanroepen van PHP?
Je kunt proberen om /usr/local/bin/php56 of /usr/local/bin/php73 te gebruiken.
Welke MariaDB gebruik je?
-
Dag bartmans99,
Het is gelukt! Ik gebruikte eerder het commando php invoice_mails.php
en dan heb ik omgevormd naar /usr/local/bin/php56 invoice_mails.php
en nu werkt het.
Was trouwens MariaDB5.
Allemaal bedankt voor jullie hulp!
-
Mooi.
php verwijst naar /bin/php, een versie die de NAS 'zelf' gebruikt.
de /usr/local/bin versies zijn de geinstalleerde PHP packages voor de gebruikers, die je via Webstation kunt instellen.
-
Kijk da's nou nuttige informatie, hartstikke fijn om te weten! En ik maar altijd de standaard php gebruiken hehe :-)
Nogmaals bedankt voor je hulp!