Avatar billede palito Nybegynder
31. juli 2008 - 01:51 Der er 5 kommentarer

Forskel på bindParam og bindValue

Hvad er forskellen på bindParam og bindValue?
Avatar billede palito Nybegynder
31. juli 2008 - 01:57 #1
og bindColumn

--
og det er selvfølgelig mht. PDO :-)
Avatar billede arne_v Ekspert
31. juli 2008 - 03:26 #2
som jeg læser docs:

bindValue tildeler en værdi til en placeholder

bindParams tildeler en ref til en placeholder

Der er 2 forskelle:
* ved bindValue bruges værdien som den er ved bindValue kaldet
  mens ved bindParam bruges værdien som den er ved execute kaldet
* bindParam kan supportere out parametre ved stored procedures

bindColumn er noget helt andet og bruges til kolonner i query output
Avatar billede arne_v Ekspert
31. juli 2008 - 04:01 #3
3 eksempler:

// bindValue
echo "bind value:<br>\n";
$i = 2;
$db = new PDO('mysql:host=localhost;dbname=Test');
$stmt = $db->prepare("SELECT * FROM T1 WHERE F1 > :F1");
$stmt->bindValue(':F1', $i);
$i = 4;
$stmt->execute(); // find all >2
while($row = $stmt->fetch()) {
    $f1 = $row['F1'];
    $f2 = $row['F2'];
    echo "$f1 $f2 <br>\n";
}
$stmt->closeCursor();





// bindParam
echo "bind param:<br>\n";
$i = 2;
$db = new PDO('mysql:host=localhost;dbname=Test');
$stmt = $db->prepare("SELECT * FROM T1 WHERE F1 > :F1");
$stmt->bindParam(':F1', $i);
$i = 4;
$stmt->execute(); // find all >4
while($row = $stmt->fetch()) {
    $f1 = $row['F1'];
    $f2 = $row['F2'];
    echo "$f1 $f2 <br>\n";
}
$stmt->closeCursor();






// bind column
echo "bind column:<br>\n";
$db = new PDO('mysql:host=localhost;dbname=Test');
$stmt = $db->prepare("SELECT * FROM T1");
$stmt->execute();
$stmt->bindColumn('F1', $f1);
$stmt->bindColumn('F2', $f2);
while($row = $stmt->fetch()) {
    echo "$f1 $f2 <br>\n";
}
$stmt->closeCursor();
Avatar billede arne_v Ekspert
30. august 2008 - 01:47 #4
OK ?
Avatar billede arne_v Ekspert
28. oktober 2008 - 02:37 #5
?
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