<?
// bind Parameters Elegant Way:
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // sorgt dafür, dass eine Exception geworfen wird!
$whereArtikel="test1";
$whereArtikel2="test2";
$sql="SELECT Surname FROM Contacts WHERE Surname = :art OR Surname = :bin";
//$sql2="SELECT Surname FROM Contacts WHERE Surname = ? OR Surname = ?";
if($stmt=$conn->prepare($sql)){
if ($stmt->execute([':art'=>$whereArtikel,':bin'=>$whereArtikel2])){//execute(['test1','test2'])
$stmt->rowCount();
while ($row=$stmt->fetch()){ // OR $row=$stmt->fetch(PDO::FETCH_OBJ) --> returns Object | PDO::FETCH_NUM -> indiziertes Array
echo $row['Surname']."<br/>"; // $row->Surname
}
}
}
// Bind Parameters with bindValue
$whereArtikel='483-00-00';
$sql="SELECT ArtikelNr FROM _IQF2_FK_Artikel WHERE ArtikelNr = :art";
if($stmt=$conn->prepare($sql)){
$stmt->bindValue(':art',$whereArtikel);
if ($stmt->execute()){
$stmt->rowCount();
while ($row=$stmt->fetch()){
echo $row['ArtikelNr']."<br/>";
}
}
}
// Bind Parameters with bindParam
// https://stackoverflow.com/questions/12392424/pdo-bindparam-vs-execute
################ EXAMPLE########################:
$whereArtikel='483-00-00';
$sql="SELECT ArtikelNr FROM _IQF2_FK_Artikel WHERE ArtikelNr = :art";
if($stmt=$conn->prepare($sql)){
$stmt->bindParam(':art',$whereArtikel);
if ($stmt->execute()){
$stmt->rowCount();
while ($row=$stmt->fetch()){
echo $row['ArtikelNr']."<br/>";
}
}
}
################DIFFERENCE BETWEEN bindValue and BindParam##############################
// erster Unterschied: bindValue kann man sowohl Variablen als auch Strings als Parameter angeben
// bind_param nur Variablen!!
$someVal=10;
$someVal2=20;
/* In bindParam, the value argument is not bound and
will be changed if we change its value before execute.
*/
$ref->bindParam(':someCol',$someVal);
$someVal=$someVal2;
$ref->execute();
//someCol=20
/* In bindValue, the value argument is bound and
never changed if we change its value before execute.
*/
$ref->bindValue(':someCol',$someVal);
// here assignment is referral (&$someVal)
$someVal=$someVal2;
$ref->execute();
//someCol=10