Michał Stachura

Michał Stachura Dedykowane serwisy i
strony www -
http://santri.eu

Temat: Cannot pass parameter by reference

Witam,

Przy konstrukcji:
$sql = $db->prepare('SELECT COUNT(*) FROM uzytkownicy WHERE segment = :segment AND aktywny = :aktywny');

i określeniu zmiennych
$sql->bindParam(':segment', 0, PDO::PARAM_INT);
$sql->bindParam(':aktywny', 1, PDO::PARAM_INT);


otrzymuję komunikat: Cannot pass parameter by reference
Zgłupiałem, tym bardziej, że pierwszy raz to spotykam w wykonaniu PDO.
Piotr L.

Piotr L. Administrator,
programista, student
Politechniki
Warszaws...

Temat: Cannot pass parameter by reference

bindParam() musi przyjąć zmienną jak drugi argument, a nie wartość. Więc:

$segment = 0;
$sql->bindParam(':segment', $segment, PDO::PARAM_INT);
$aktywny = 1;
$sql->bindParam(':aktywny', $aktywny, PDO::PARAM_INT);


Teraz zmieniając zmienne $segment i $aktywny zmieniasz jednocześnie zapytanie, co w przypadku wielu podobnych zapytań znacząco usprawnia wykonywanie się zapytań.

Możesz jednak wykorzystać bindValue(), bo raczej tego potrzebujesz:

$sql->bindValue(':segment', 0, PDO::PARAM_INT);
$sql->bindValue(':aktywny', 1, PDO::PARAM_INT);
Piotr Latosiński edytował(a) ten post dnia 24.01.10 o godzinie 00:18
Michał Stachura

Michał Stachura Dedykowane serwisy i
strony www -
http://santri.eu

Temat: Cannot pass parameter by reference

Dziękować

Następna dyskusja:

Warning: Cannot modify head...




Wyślij zaproszenie do