Avatar billede KHHP Juniormester
23. juni 2012 - 10:13 Der er 2 kommentarer og
1 løsning

Fejl ved hentning af data

Hej
Jeg er igang med at implementere MySQLi på en "øvelsesside" som jeg bruger til at afprøve nye ting inden jeg anvender dem på min "live" sider og er stødt ind i et lille problem.
Min kode der skal hente indhold ud ser således ud:
<?php include 'inc/connect.php';
/* Opret et prepared statement */
if ($stmt = $mysqli->prepare('SELECT `titel`, `tekst` FROM `indhold` WHERE `id` ?')) {
/* Bind parametre */
$stmt->bind_param('i', $id);
/* Sæt værdier på parametrene */
$id = 1;
/* Eksekver forespørgslen */
$stmt->execute();
/* Bind resultatet */
$stmt->bind_result($titel, $tekst);
/* Hent rækker og udskriv data */
$stmt->fetch();
echo '<h1>'.$titel.'</h1>'.$tekst;
/* Luk statement */
$stmt->close();
} else {
/* Der er opstået en fejl */
echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
}

Min inc/connect.php ser således ud:
<?php
$server = "localhost";
$brugernavn = "root";
$kode = "";
$db = "insite";

$mysqli = new mysqli("$server", "$brugernavn", "$kode", "$db");/* Tjek, om der opstod en fejl */
if (mysqli_connect_errno()) {
    echo 'Der opstod en fejl ved forbindelsen: ' . mysqli_connect_error();
    exit();
}
?>

Umiddelbart ville jeg mene at det hele er rigtigt i forhold til denne guide: http://www.eksperten.dk/guide/1480
Men så burde den jo vise mit indhold.
Jeg får i stedet for mit indhold denne fejl:
Der opstod en fejl i erklæringen: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 1
Er der nogen der lige kan hjælpe mig med hvorfor den driller?
Avatar billede olsensweb.dk Ekspert
23. juni 2012 - 11:00 #1
skulle denne linje
$mysqli = new mysqli("$server", "$brugernavn", "$kode", "$db");/* Tjek, om der opstod en fejl */
ikke se sådan ud, dvs uden ""
$mysqli = new mysqli($server, $brugernavn, $kode, $db);/* Tjek, om der opstod en fejl */ ??

det er så ikke fejlen.

if ($stmt = $mysqli->prepare('SELECT `titel`, `tekst` FROM `indhold` WHERE `id` ?')) {
mangler der ikke et ligheds tegn ??
if ($stmt = $mysqli->prepare('SELECT `titel`, `tekst` FROM `indhold` WHERE `id` = ?')) {
Avatar billede KHHP Juniormester
23. juni 2012 - 11:16 #2
Ok. Synes nok at der var noget, men som sagt så er det første gang jeg prøver kræfter med MySQLi, så det kunne jo være at de skulle være der også selvom jeg udskitfter værdier med variabler.
Smider du lige svar?
Avatar billede olsensweb.dk Ekspert
23. juni 2012 - 14:43 #3
får du her
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester