<?php class MyDB extends SQLite3 { function __construct($dbname) { $this->open($dbname); } } // Open the DB $db = new MyDB('minerals'); // Pick up the form fariables $what = $_POST['what']; // Look for anything fishy. Punt if there is. if (preg_match('/;|"|\'|insert|drop|join|alter|delete|select|update|where/i', $what)) { echo "<html><head><meta http-equiv=\"refresh\" content=\"0;URL='query.html'\" />"; exit; } // Check if there should be a where clause. if ($_POST['where'] != "") { $where = $_POST['where']; // Check the where clause too: if (preg_match('/;|"|insert|drop|join|alter|delete|select|update|where/i', $where)) { echo "<html><head><meta http-equiv=\"refresh\" content=\"0;URL='query.html'\" />"; exit; } $whereClause = "where ". $where; } else { $whereClause = ""; } // Build the query $sql = "select $what from Minerals $whereClause"; // Execute the query $result = $db->query($sql); // Is there a result? if ($result) { echo "<table border=\"2px\"><tr>"; // Get and display the field names for the result as a table $columns = $result->numColumns(); for($i = 0; $i < $columns; $i++) { $fields[$i] = $result->columnName($i); echo "<td><b><center>$fields[$i]<center><b></td>"; } echo "</tr>"; // Fetch rows of the result indexed by field name and display while($row = $result->fetchArray(SQLITE3_ASSOC) ) { $outval = ""; echo "<tr>"; foreach($fields as $field ) { if($field == "Image") { $outval = $outval . "<td><img src=".$row[$field]."></td>"; } else { $outval = $outval . "<td>$row[$field]</td>"; } } echo $outval; echo "</tr>"; } echo "</table>"; } else { echo "No results!"; }