bindParam() metodu.

bindParam();
Hissə 6.
bindParam() metodu prepare()metodu ilə hazırlanan SQL sorğusunda ? və : işarələri ilə qeyd olunan parametrələrin hazırlanmasında istifədə olunur.Yəni bir qeyd etmək istədiyimiz zaman bu verilənlərin tipini özümüz müəyyən etməliyik(string,integer və s.).
bindParam() metodunda istifadə edilən verilənlərin tipləri:
1)PDO::PARAM_INT => integer (rəqəm tipli)verilənlər tipini ifadə edir.
2)PDO::PARAM_STR => char,varchar(mətn tipli) verilənlər tipini ifadə edir.
3)PDO::PARAM_NULL => boş (null) dəyərini ifadə edir.
İndi isə gəlin bir nümunəyə nəzər yetirək.
test.php
<?php
//Bazaya bağlantı üçün kodlarımızı yazırıq
$host="localhost";
$database="db_name";
$user="root";
$password="test";
try{
            $connect=new PDO("mysql:host=$host;dbname=$database", "$user", "$password");
}catch(PDOException $e){
            echo "Xəta! : ".$e->getMessage();
}
?>
<!--HTML form üçün kodlarımız-->
<!DOCTYPE html>
<html>
<head>
            <title>Test</title>
</head>
<body>
            <center >
                        <form action="" method="POST"  >
                                   <label>İstifadəçi adı</label>
                                   <input type="text" name="istifadeci_adi"  placeholder="İstifadəçi adını daxil edin" required="">
                                   <label>Şifrə</label>
                                   <input type="password" name="istifadeci_sifresi" placeholder="Şifrəni daxil edin " required="">
                                   <input type="submit" value="Giriş edin">
                        </form>
            </center>
</body>
</html>
<?php
//bindParam() metodundan istifadə qaydası
if ($_POST) {
                $i_adi=trim($_POST["istifadeci_adi"]);
                $i_sifre=trim($_POST["istifadeci_sifresi"]);
                if ($i_adi && $i_sifre) {
                               $sorgu=$connect->prepare("SELECT * FROM qeydiyyat WHERE ad=:istifadeci_adi and sifre=:istifadeci_sifresi ");
                               $sorgu->bindParam(':istifadeci_adi',$i_adi,PDO::PARAM_STR);
                               $sorgu->bindParam(':istifadeci_sifresi',$i_sifre,PDO::PARAM_STR);
                               $sorgu->execute(); // Sorğunu çalışdırırıq
                               if ($sorgu->rowCount()>0) {  // rowCount() ilə təsirlənən sətir sayını geri döndürürük.
                                               echo "Uğurlu giriş edildi";
                               }else{
                                               echo "Uğursuz giriş edildi ! ";
                               }
                }
}
?>
Qeyd1:Burada yer alan bağlantı kodarımızı başqa php səhfəsində qeyd edib bizim səhifəmizə əlavə edə də bilərdik.Bu şəkildə: <?php include “connection.php”; ?>  və ya <?php  require  "connection.php"; ?>
Qeyd2:Sorğuda yer alan : bu işarəni ? bu işarə ilə də əvəz edə bilərdik.O zaman sorğumuz aşağıdakı şəkildə olacaqdır: 
$sorgu=$connect->prepare("SELECT * FROM qeydiyyat WHERE ad=? and sifre=? ");
                               $sorgu->bindParam('1',$i_adi,PDO::PARAM_STR);
                               $sorgu->bindParam('2',$i_sifre,PDO::PARAM_STR);
Qeyd3:Yuxarıdakı if bloqunun içindəki if($sorgu->rowCount()>0){} yazısının aşağıdakı şəkildə istifadəsi yanlışdır:
//Bu formada
if($sorgu==TRUE){}
//və ya bu formada
if($sorgu){}
//və ya bu formada
if($sorgu==FALSE){}
//və ya bu formada istifadəsi yanlışdır !!!
if(!$sorgu){}


Comments

Popular Posts