Hej
Nu er jeg lang om længe begyndt at studere MySQLi lidt nærmere og har besluttet mig for at konvertere min egen hjemmeside fra MySQL-API til MySQLi-API, inden den frigives på internettet. Men er kommet lidt i tvivl, da jeg har placeret selve forespørgslen til databasen øverst i min fil, som vist nedenfor.
- include 'inc/connect.php';
- session_start();
- if (isset($_GET['page_id'])) {
- $page_id = $_GET['page_id'];
- }
- else {
- $page_id = 1;
- }
- if ($stmt = $mysqli->prepare('SELECT `titel`, `tekst` FROM `content` WHERE `page_id` = ?')) {
- /* Bind parametre */
- $stmt->bind_param('i', $page_id);
- /* Eksekver forespørgslen */
- $stmt->execute();
- /* Bind resultatet */
- $stmt->bind_result($titel, $tekst);
- }
- else {
- $_SESSION['fail'] = 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
- }
Det jeg har, indtil videre, har blot hentet det jeg skal bruge, og gemt det i variabler, men jeg mangler jo at skrive det ud. Men når jeg beder den om at udskrive $tekst længere nede på siden, så går der noget galt. Vi er jo enige om at jeg ikke har afsluttet min forbindelse til databasen endnu, fordi jeg ikke har skrevet
$stmt->close();. Men hvorfor vil den så ikke udskrive teksten til siden? Jeg har indsat
echo $tekst; længere nede på siden. Jeg tvivler på at jeg får noget ud af at flytte mit øverste if/else-statement, som definerer værdien af $page_id.
Jeg ved at min løsning virkede med MySQL-API, fordi jeg rent faktisk fik tekst frem.
i MySQL-API gjorde jeg således:
- $sql = mysql_query("SELECT * FROM content WHERE page_id = '$page_id'");
- $indhold = mysql_fetch_assoc($sql);
- //En masse kode til design og diverse andre funktioner der ikke benytter MySQL
- echo $indhold['tekst'];
Skal jeg virkelige flyttet hele mit if/else-statement ned i body for at den vil opføre sig ordentligt?