Løste det på følgende måde med 2 filer Fil 1 hedder dbselect.php <?php include "dbConfig.php"; $sql = "SELECT * FROM dbselect"; $result = mysqli_query($dbsql, $sql); $queryResult = mysqli_num_rows($result); if ($queryResult > 0){ while ($row = mysqli_fetch_array($result)){ $dbselect = $row['dbselect']; } } $path = "C:\temp\sqlitedb\\"; $dbsqlite = $path . $dbselect; ?> file 2 hedder dbsqlite.php
<?php class MyDB extends SQLite3{ private $dbselect; function __construct(){ include ("dbselect.php"); $this->open($dbsqlite); } } $db = new MyDB(); ?>
Det er fint nok at have to filer - generelt bør klasser have en fil for sig selv. Men det vil være en bedre løsning her (oven i de to filer) at sende din variabel med ind i funktionen i stedet for at udføre logikken inde i funktionen - hvilket stadig sker her, selvom det er i to filer.
Dvs du kan tage $dbsqlite som argument i din constructor: function __construct($dbsqlite){ ...
Og når du så laver en ny MyDB klasse, giver du den din variabel med: $db = new MyDB($dbsqlite);
Dette gør alting løsere koblet, hvilket betyder du nemmere kan genbruge ting i fremtiden, og det gør det testable. Ud over det lyder det ikke som om specifikke queries og resultater bør ligge i en fil der hedder dbConfig. Det ville man mene kun skulle indeholde generel konfiguration for hele projektets databaseadgang.
Det har ikke noget med sikkerhed at gøre, men god kodepraksis.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.