-
Üyelik
05.07.2017
-
Yaş/Cinsiyet
25 / E
-
Meslek
PHP
-
Konum
Bursa
-
Ad Soyad
M** Ç**
-
Mesajlar
10
-
Beğeniler
1 / 1
-
Ticaret
0, (%0)
Merhaba kayıt sistemim sorunsuz çalışıyor fakat veritabanımda ki "id","kullad" değerlerini kayıt sonrası session içine atmak istiyorum fakat beceremedim
else {
$sorgu = $db->prepare("INSERT INTO uyeler (ad,soyad,kullad,sifre,eposta) VALUES(:ad,:soyad,:kullad,:sifre,:eposta)");
$sorgu->execute(array('ad' => $kayitAd, 'soyad' => $kayitSoyad, 'kullad' =>
$kayitKullad, 'sifre' => $kayitSifre, 'eposta' => $kayitEpostaKontrol));
}
-
Üyelik
03.04.2019
-
Yaş/Cinsiyet
29 / E
-
Meslek
.
-
Konum
Trabzon
-
Ad Soyad
A** K**
-
Mesajlar
905
-
Beğeniler
393 / 395
-
Ticaret
3, (%100)
Kayıt başarılı olduktan sonra kullad değerini veri tabanından çekmenize gerek yok zaten, gelen kullanıcı adını alırsınız. Kullanıcı id si için de lastInsertId() metodunu kullanarak son eklenen üyenin veri tabanındaki id numarasını alabilirsiniz.
$id = $db->lastInsertId();
1 kişi bu mesajı beğendi.
-
Üyelik
03.04.2019
-
Yaş/Cinsiyet
29 / E
-
Meslek
.
-
Konum
Trabzon
-
Ad Soyad
A** K**
-
Mesajlar
905
-
Beğeniler
393 / 395
-
Ticaret
3, (%100)
Kullanıcı için gizli kalması gereken bir değeri session a atamayın, şifre gibi. Kullanıcı adı atanmasında bir sakınca olacağını düşünmüyorum. id değeri de bir nevi gizli bilgi sayılabilir. Şüpheleriniz varsa ve yine de tutmak istiyorsanız bir şifreleme algoritmasından geçirip öyle tutun. md5 olabilir ama sonradan decode edilebilecek bir yöntem istiyorsanız ona göre araştırma yapabilirsiniz. lastinsertid de veri tabanına son kaydedilen id yi alıyor, yani server taraflı işliyor.
-
Üyelik
03.04.2019
-
Yaş/Cinsiyet
29 / E
-
Meslek
.
-
Konum
Trabzon
-
Ad Soyad
A** K**
-
Mesajlar
905
-
Beğeniler
393 / 395
-
Ticaret
3, (%100)
fetch() i nerede kullanmaya çalıştığınıza bağlı, birkaç yıl önceki halini biliyorum. Ayrıca sıkıntı olmaz, milisaniyeler ile gerçekleşen işlemler bunlar ve lastinsertid yi hemen bir insert işleminin ardı sıra yazarsanız sorunsuz şekilde alıp kullanabilirsiniz.
-
Üyelik
05.07.2017
-
Yaş/Cinsiyet
25 / E
-
Meslek
PHP
-
Konum
Bursa
-
Ad Soyad
M** Ç**
-
Mesajlar
10
-
Beğeniler
1 / 1
-
Ticaret
0, (%0)
Kusura bakmayın çok soru soruyorum ama yüksek trafik ve pooling yüzünden lastid boş değer döndürebilir yazmışlar stackte bunu lastid kullanmadan nasıl yapabilirim databaseden veri çekerek
-
Üyelik
03.04.2019
-
Yaş/Cinsiyet
29 / E
-
Meslek
.
-
Konum
Trabzon
-
Ad Soyad
A** K**
-
Mesajlar
905
-
Beğeniler
393 / 395
-
Ticaret
3, (%100)
O zaman şöyle olsun. Kayıt sonrası hemen bir tane de SQL sorgusu yazın kullanıcı adı üzerinden;
$a = $db->prepare("SELECT id FROM kullanici_tablo WHERE kullad=?")->fetch(2);
$a->execute([$kayitKullad]);
$id = $a['id'];
-
Üyelik
05.07.2017
-
Yaş/Cinsiyet
25 / E
-
Meslek
PHP
-
Konum
Bursa
-
Ad Soyad
M** Ç**
-
Mesajlar
10
-
Beğeniler
1 / 1
-
Ticaret
0, (%0)
O zaman şöyle olsun. Kayıt sonrası hemen bir tane de SQL sorgusu yazın kullanıcı adı üzerinden;
PHP- Kodu:
$a = $db->prepare("SELECT id FROM kullanici_tablo WHERE kullad=?")->fetch(2);
$a->execute([$kayitKullad]);
$id = $a['id'];
Çok teşekkür ederim birazdan deneyeceğim şuan pek müsait değilim. İlginiz için teşekkürler
1 kişi bu mesajı beğendi.
-
Üyelik
05.07.2017
-
Yaş/Cinsiyet
25 / E
-
Meslek
PHP
-
Konum
Bursa
-
Ad Soyad
M** Ç**
-
Mesajlar
10
-
Beğeniler
1 / 1
-
Ticaret
0, (%0)
Önceden de bu tarz hata alıyordum bayağı araştırdım fakat sorunu bulamadım aynısını alıyorum şimdi de :(
: Uncaught Error: Call to a member function execute() on bool in
else {
$sorgu = $db->prepare("INSERT INTO uyeler (ad,soyad,kullad,sifre,eposta) VALUES(:ad,:soyad,:kullad,:sifre,:eposta)");
$sorgu->execute(array('ad' => $kayitAd, 'soyad' => $kayitSoyad, 'kullad' => $kayitKullad, 'sifre' => $kayitSifre, 'eposta' => $kayitEpostaKontrol));
if($sorgu) {
$bilgiCek = $db->prepare("SELECT id FROM uyeler WHERE kullad=?")->fetch(2);
$bilgiCek->execute([$kayitKullad]);
$_SESSION['uid'] = $bilgiCek['id'];
echo $_SESSION['uid'];
}
}