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
Post a Comment