Avatar billede Morten Professor
09. november 2015 - 12:17 Der er 9 kommentarer og
1 løsning

$stmt->bind_param

Hej Eksperter

Så er der noget jeg ikke forstår er helt sikker på jeg gør det rigtig, som jeg har lært efter hånden. (Er ny i mysqli)

Jeg har et problem her med  $stmt->bind_param('isiis', $id, $ip, $hits, $besoeg, $datetime);

Jeg skulle mene det ser rigtig ud.
Jeg har denne kode:


ini_set("display_startup_errors", "on");
ini_set("display_errors", "on");
ini_set("html_errors", "false");
error_reporting(-1); // -1 viser alle slags fejl beskeder
ini_set("ignore_repeated_errors", 0);

                /* Select et prepared statement */
if ($stmt = $hellestrik->prepare('SELECT id, ip, hits, besoeg, datetime FROM `tbl_besogstaeller`')) {

    /* Bind parametre */
    $stmt->bind_param('isiis', $id, $ip, $hits, $besoeg, $datetime);

    /* Sæt værdier på parametrene */
    $id = $id['id'];
    $ip = $ip['ip'];
    $hits = $hits['hits'];
    $besoeg = $besoeg['besoeg'];
    $datetime = $datetime['datetime'];

    /* Eksekver forespørgslen */
    $stmt->execute();

    /* Bind resultatet */
    $stmt->bind_result($id, $ip, $hits, $besoeg, $datetime);

    /* Hent rækker og udskriv data */
    while ($stmt->fetch()) {
    $id;}}

Får denne fejl:
Warning: mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement in C:\wamp\www\fluefiskersiden_webshop\admin\test_hits_besoge.php on line 13 Call Stack: 0.0019 244496 1. {main}() C:\wamp\www\fluefiskersiden_webshop\admin\test_hits_besoge.php:0 0.0111 282168 2. mysqli_stmt->bind_param() C:\wamp\www\fluefiskersiden_webshop\admin\test_hits_besoge.php:13


Nu har ronols lært mig meget her på det sidste, og håber ikke jeg belemre ham for meget med alle mine spørgsmål, han har været meget hjælpsom. En rigtig guttermand.

Med venlig hilsen
Morten
Avatar billede olsensweb.dk Ekspert
09. november 2015 - 12:33 #1
Warning: mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement in C:\wamp\www\fluefiskersiden_webshop\admin\test_hits_besoge.php on line 13 Call Stack: 0.0019 244496 1. {main}() C:\wamp\www\fluefiskersiden_webshop\admin\test_hits_besoge.php:0 0.0111 282168 2. mysqli_stmt->bind_param()

>('SELECT id, ip, hits, besoeg, datetime FROM `tbl_besogstaeller`')) {
>/* Bind parametre */
>$stmt->bind_param('isiis', $id, $ip, $hits, $besoeg, $datetime);

hvor mange spørgsmåls tegn har du sat i din select ?? (svar 0)
hvor mange parameter skal du så binde (svar 0)

så det skal vel se ca sådan ud
(utested)   
       
/* Select et prepared statement */
if ($stmt = $hellestrik->prepare('SELECT id, ip, hits, besoeg, datetime FROM `tbl_besogstaeller`')) {
    /* Eksekver forespørgslen */
    $stmt->execute();
    /* Bind resultatet */
    $stmt->bind_result($id, $ip, $hits, $besoeg, $datetime);
    /* Hent rækker og udskriv data */
    while ($stmt->fetch()) {
        $id;
    }
}
Avatar billede Morten Professor
09. november 2015 - 12:53 #2
Den virker rigtig nok med ingen fejl nu, men med ingen id
Den select husker jeg lige til en anden gang.
Men kan bare ikke forstå, hvad jeg gør galt, jeg hjorde det samme som ved en anden select der virkede fint.
Avatar billede Morten Professor
09. november 2015 - 12:56 #3
Fik rettet besoeg, datetime FROM `tbl_besogstaeller` WHERE id = ?' men det var for at få alt med gjorde det uden WHERE.
Avatar billede Morten Professor
09. november 2015 - 13:00 #4
Har ændret igen for som du sagde, havde ingen ?
Avatar billede Morten Professor
09. november 2015 - 13:03 #5
Se bort fra "Men kan bare ikke forstå, hvad jeg gør galt, jeg gjorde det samme som ved en anden select der virkede fint."
Avatar billede Morten Professor
09. november 2015 - 13:07 #6
Og har id'er stående i databasen
Avatar billede Morten Professor
09. november 2015 - 13:20 #7
Ej undskyld havde glem echo :oP
Undskyld jeg var så dum.

Vil du smide et svar :o)
Avatar billede olsensweb.dk Ekspert
09. november 2015 - 13:23 #8
while ($stmt->fetch()) {
    $id;
}

har du overvejet at echo id ud ??
while ($stmt->fetch()) {
    echo $id;
}   

det havde du så :)

du få så et svar
Avatar billede olsensweb.dk Ekspert
09. november 2015 - 13:42 #9
jeg tror jeg ville smide det ind i en function, da det er en forspørgelse du kan bruge mange gange

   
<?php
ini_set("display_startup_errors", "on");
ini_set("display_errors", "on");
ini_set("html_errors", "false");
error_reporting(-1); // -1 viser alle slags fejl beskeder
ini_set("ignore_repeated_errors", 0);

require_once("model.php"); // her ligger connection og alle sql funktioner


function besogstaeller_ReadAll($conn){
    $ar=array();
    /* Select et prepared statement */
    if ($stmt = $conn->prepare('SELECT id, ip, hits, besoeg, datetime FROM `tbl_besogstaeller`')) {
        /* Eksekver forespørgslen */
        $stmt->execute();
        /* Bind resultatet */
        $stmt->bind_result($id, $ip, $hits, $besoeg, $datetime);
        /* Hent rækker og udskriv data */
        while ($stmt->fetch()) {
            $ar[]=array("id"=>$id, "ip"=>$ip);
        }
    }
    return $ar;
}

$liste = besogstaeller_ReadAll($hellestrik);
// test
echo "<pre>";
print_r($liste);
echo "</pre>";


for($i=0, $lng=count($liste); $i<$lng; $i++){
    echo $liste[$i]['id'] . "<br>";
}
?>

som du ser sker udskrivningen uden for functionen, så den kan bruges mere alsidigt
Avatar billede Morten Professor
09. november 2015 - 13:45 #10
Mange tak ;o) den vil jeg lege med og bruge i mine projekter :o)

Det er rart med nogle muligheder, som du giver mig.

Endnu en gange 1000 tak.

Med venlig hilsen
Morten
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



IT-JOB

Politiets Efterretningstjeneste

Ambitiøs Enterprisearkitekt til PET

Blue Water Shipping A/S

Senior Developer

Cognizant Technology Solutions Denmark ApS

Service Line Specialist - ServiceNow (Thirdera)

Netcompany A/S

Test Specialist