if (isset($_POST['kayitol'])) {
$kullanici_password=md5($_POST['kullanici_password']);
$kaydet=$db->prepare("INSERT INTO kullanici SET
kullanici_telefon=:telefon,
kullanici_mail=:mail,
kullanici_password=:sifre
");
$insert=$kaydet->execute(array(
'telefon' => $_POST['kullanici_telefon'],
'mail' => $_POST['kullanici_mail'],
'sifre' => $kullanici_password
));
if ($insert) {
Header("Location:../giris?kayit=ok");
} else {
Header("Location:../giris?kayit=no");
}
}böyle bir fonksiyonum var mysql e insert ettiriyorum kullanıcıy ancak bunu kullanici_mail olarak böyle bir veri var mı yok mu diye nasıl sorgulatabilirim birde bunu get'e gönderip notify olmasını istiyorum bilen arkadaşlarım yardımcı olabilir mi?
Php pdo
3
●376
- 29-01-2019, 03:17:52
- 29-01-2019, 03:30:55Eğer ben "kullanici_mail olarak böyle bir veri var mı yok mu diye nasıl sorgulatabilirim " şeklinde bir problemle karşılaşsaydım;
Google'a şunları yazardım:- php pdo check if row
- php pdo check if user exists
- php pdo check if user email exists
İllaki stackoverflow vb. sitelerden çözümlere erişebilirdiniz ve en iyi öğrenme yöntemlerinden biri de bu.
Araştır, kodu test et, sonucu doğrula.
Dipnot: Eğer sorununuz daha komplike bir sorun olsaydı elbette çözüm için daha farklı yollar gösterebilirdik.
Son olarak konu başlığınıza "php pdo" yazmak yerine sorununuzu tanımlayabilecek en sade haliyle yazarsanız daha iyi olur. Dikkat etmenizde fayda var..
Hayırlı geceler dilerim.. - 29-01-2019, 03:59:26Muhtemelen bu şekilde işini görür. Mail olayı fakat diğer dediğini bilmiyorum.
<?php if (isset($_POST['kayitol'])) { $kullanici_mail = $_POST['kullanici_mail']; $mail_sorgula = $db->query("SELECT * FROM kullanici WHERE kullanici_mail = '{$kullanici_mail}'")->fetch(PDO::FETCH_ASSOC); // mail adresi var mı yok mu sorgusu oluşturuyoruz if($mail_sorgula==false){ // buradada mail_sorgu false yani boşa diyoruz. $kullanici_password=md5($_POST['kullanici_password']); $kaydet=$db->prepare("INSERT INTO kullanici SET kullanici_telefon=:telefon, kullanici_mail=:mail, kullanici_password=:sifre "); $insert=$kaydet->execute(array( 'telefon' => $_POST['kullanici_telefon'], 'mail' => $_POST['kullanici_mail'], 'sifre' => $kullanici_password )); if ($insert) { Header("Location:../giris?kayit=ok"); } else { Header("Location:../giris?kayit=no"); } }else{ echo 'Mail adresi kullanılıyor'; // Burada da eğer mail kullanılıyorsa onu belirtiyoruz. İstersen bir değişkene atayıp alert ile de yazdırabilirsin. } } ?> - 29-01-2019, 16:11:34bu kadar kasmana gerek yok, hele google'a check if exists falan gibi lüzumsuz şeyler yazmaya da gerek yok
mysql unique tanımlı alanlarda daha önceden kayıtlı verileri tekrar eklemeyerek 1062 hata kodu verir, pdo insert işlemini try catch içerisinde yaparsan exception nesnesinin errorInfo argümanından bu kodu alabilirsin, bu koda göre bir boolean tanımlarsın onun değerini false olarak atar kontrolünü de sağlamış olursun