Mysqli - Prepared statements

Tags:    php mysqli mysql

Heej. jeg er igang med lidt security på min hjemmeside, så er igang med at skrive min mysqli class om til at bruge prepared statements, og er stødt ind i et problem som jeg ikke kan regne ud (:
Er igang med at gøre sådan så at man dynamisk kan indsætte variabler i bind_param() funktionen.

Kode: (som ikke virker)
Fold kodeboks ind/udPHP kode 


kode: (som virker)
Fold kodeboks ind/udPHP kode 


Må indrømme at jeg virkelig ikke kan se hvad forskellen er, men ved den første får jeg fejlen "Parameter 2 to mysqli_stmt::bind_param() expected to be a reference, value given", og ved den anden, gør den hvad jeg gerne vil have den til.
Tak på forhånd!
Wunderstrudel.



4 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
prøv at lave det om til en referance
(utested)
Fold kodeboks ind/udKode 

læg mærke til & tegnet, som angiver det er referancen til $test der overføres og ikke en kopi af test, dvs de ændringer der sker på variablen træder i kraft i den externe variabel

du kan sammenligne det med scope regler for functioner.
du kan se det i en function her
Fold kodeboks ind/udKode 


personligt er jeg mere til PDO, der er Prepare Statement klart forbedret




Heej Roony, har roddet lidt rundt med det, og når jeg scoper den så får jeg abre denne error i stedet " Call-time pass-by-reference has been removed in C:\xampp\htdocs\websites\leg\mysqliConnect.php on line 14", og den har vist sig at være lige så svær at komme af med.
Men mange tak for kommentaren. Mvh Wunderstrudel



hvad sker der hvis du i metoden refValues(), indsætter & ??
Fold kodeboks ind/udKode 


https://www.google.dk/search?q=Call-time+pass-by-reference+has+been+removed
http://stackoverflow.com/questions/12322811/call-time-pass-by-reference-has-been-removed
http://stackoverflow.com/questions/8971261/php-5-4-call-time-pass-by-reference-easy-fix-available




Den har jeg faktisk prøvet, og der får jeg bare den samme fejl som tidligere, "Parameter 2 to mysqli_stmt::bind_param() expected to be a reference, value given in", det føles lidt som en ond cirkel d:



t