Wie kan mij bij het volgende probleem helpen.
Ik ben een beginnend PHP gebruiker.
Op basis van een boek heb ik een website met o.a. een PHP-pagina en een database met sqlite2 gemaakt. Werkt prima.
Nu wil ik hetzelfde ook met sqlite3 gebruiken.
Daarvoor schijn je PDO te moeten gebruiken. sqlite_open() werkt dan niet meer.
Kan iemand mij zeggen op welke wijze ik de broncode moet aanpassen, zodat ik ook de database in sqlite3 kan openen?
Bedankt voor de reactie, maar dat is voor mij niet de oplossing.
Heel concreet: wat moet ik aan onderstaande code wijzigen?
<?php
// variabelen initialiseren
//=============================
$db= sqlite_open("amount.db");
$sql= "SELECT * FROM bereken ";
// query uitbreiden indien bedrag is doorgegeven
if (!empty($_POST)){
$sql .= " WHERE uk='" . $_POST["uk"] . "'";
}
//einde initialisatie, verbinden met database
$result = sqlite_query($db, $sql) or die (sqlite_error_string(sqlite_last_error()));
?>
<?php
$db = new PDO('sqlite:./amount.db');
$sql = 'SELECT * FROM bereken';

if(!empty($_POST)) {
$sql .= ' WHERE uk = ?';
}

$stmt = $db->prepare($sql);

if(!empty($_POST)) {
$success = $stmt->execute($_POST['uk']);
} else {
$success = $stmt->execute();
}

$result = $stmt->fetchAll();
?>

Merk op dat ik hier prepare heb gebruikt. Dat is veiliger dan gewoon je post waarden in je query stoppen (google maar eens op SQL injection). $result is nu een array met al de gevonden regels.
Heel erg bedankt voor de snelle reactie. De code zegt mij als beginner nog niet veel. Tot nu toe heb ik de code uit een lesboek gehaald.
Helaas werkt het nog niet goed. Zou dat aan de overige code op de pagina kunnen liggen?
(Sorry, ik zag dat wijzig-icoontje niet zo snel. Ik hoop dat ik het nu goed heb gedaan.)


<?php 
// controleer of pagina voor het eerst wordt geopend, of 
// dat de pagina zichzelf heeft aangeroepen

// DEEL 1: De keuzelijst op het scherm tonen
if (empty($_POST)){?>
	<h2>Choose an amount</h2>
	<form name="form1" 
		action="<?php echo($_SERVER["PHP_SELF"]);?>" method="post">
	Amount: <select name="uk">
		<?php
		// de selectielijst vullen met beschikbare ID's
		while ($rij = sqlite_fetch_array($result)){
			echo("<option value=\"". $rij['ghana'] ."\">" . $rij['uk'] . "</option>\n");
		}?>
		</select>
	<input type="Submit" value="Bereken">
	</form>
<?php 

// DEEL 2: Opdrachten op het scherm tonen
}else{

		// Als de pagina zichzelf heeft aangeroepen het else-blok uitvoeren
	// in while-lus gegevens naar het scherm schrijven. De resultatenset
	// bevat nu maar één record (het doorgegeven werknemer-id)
		echo "<table width=200 cellpadding = 10 border=0>\n";
		while ($rij = sqlite_fetch_array($result))
		{
			echo "<tr>";
			echo ("<td align=right>" . "To uk : ".$rij["uk"]."</td>\n");
			echo "</tr>";
			echo "<tr>";
			echo ("<td align=right>" . "Commission : ".$rij["prov"]."</td>\n");
			echo "</tr>";
			echo ("<td align=right>" . "<hr>" . "Total : ". "<b>" .$rij["totaal"]. "</b>"."</td>\n");
			echo "</tr>\n";
	}
	
		echo"</table>\n";	
		echo("<a href=\"bereken.php\"\">
			Another amount</a><br>");
	
	}
// verbinding afsluiten
sqlite_close($db);
?>

Pas je post even aan en gebruik [ignore]
 en 
[/ignore] tags om je code heen. Om php code zet je uiteraard dit:<?php en ?>Gebruik je knop om dit te doen.

SanThe.
Bedoel je dat op deze wijze?


<?php 
// controleer of pagina voor het eerst wordt geopend, of 
// dat de pagina zichzelf heeft aangeroepen

// DEEL 1: De keuzelijst op het scherm tonen
if (empty($_POST)){?> 
<h2>Choose an amount</h2>
<form name="form1" 
action="
<?php echo($_SERVER["PHP_SELF"]);?> 
" method="post">
Amount: <select name="uk">
<?php
        // de selectielijst vullen met beschikbare ID's
        while ($rij = sqlite_fetch_array($result)){
            echo("<option value=\"". $rij['ghana'] ."\">" . $rij['uk'] . "</option>\n");
        }?> 
</select>
<input type="Submit" value="Bereken">
</form>
<?php 

// DEEL 2: Opdrachten op het scherm tonen
}else{

        // Als de pagina zichzelf heeft aangeroepen het else-blok uitvoeren
    // in while-lus gegevens naar het scherm schrijven. De resultatenset
    // bevat nu maar één record (het doorgegeven werknemer-id)
        echo "<table width=200 cellpadding = 10 border=0>\n";
        while ($rij = sqlite_fetch_array($result))
        {
            echo "<tr>";
            echo ("<td align=right>" . "To uk : ".$rij["uk"]."</td>\n");
            echo "</tr>";
            echo "<tr>";
            echo ("<td align=right>" . "Commission : ".$rij["prov"]."</td>\n");
            echo "</tr>";
            echo ("<td align=right>" . "<hr>" . "Total : ". "<b>" .$rij["totaal"]. "</b>"."</td>\n");
            echo "</tr>\n";
    }
    
        echo"</table>\n";    
        echo("<a href=\"bereken.php\"\">
            Another amount</a><br>");
    
    }
// verbinding afsluiten
sqlite_close($db);
?> 


Reageren