Pdo İle Üyelik Sistemi Yaparken Sıkıntı?
-
Arkadaşlar.
kullanıcıdan sadece mail ve şifre alarak kayıt işlemi gerçekleştirmek istiyorum. Fakat veritabanına toplamda 5 veri kaydedicem tek üye için;
id
email
şifre
kayit tarihi
bbakiye
cbakiye
şeklinde<?php error_reporting(E_ALL); require("baglan.php"); $email = $_POST['email']; $password = md5($_POST['password']); $kayittarihi = date('d.m.Y'); $b_bakiye = "0"; $c_bakiye = "0"; $kaydet = $db->prepare("INSERT INTO uyeler SET email = ?, password = ?, kayit_tarihi = ?, bbakiye = ?, cbakiye = ? "); $kaydet->execute(array($email,$password,$kayit_tarihi,$bbakiye,$cbakiye)); ?>
böyle bir kullanım doğru olur mu? kayıt tarihini şuanki tarihi atar mı bu? Bana kısaca yardımcı olabilecek birisi var mı :) küçücük vaktini alsam?
Yigit tarafından 30/Haz/16 11:27 tarihinde düzenlenmiştir -
`kayit_tarihi` 'ni veritabanında datetime olarak tanımla.
sorgun da şöyle :
"INSERT INTO uyeler SET email = ?, password = ?, kayit_tarihi = NOW(), bbakiye = ?, cbakiye = ?"
Burada da neden Datetime kullanmak gerektiğinin yanıtını bulabilirsin :
http://stackoverflow.com/questions/4759012/when-to-use-varchar-and-date-datetime
Ek olarak, yazdığın kod doğru.
Not: Dediğim şekilde tanımlarsan veritabanında Ay-Gün-Yıl Saat:Dakika:Saniye tipinde görünecek, sen onu aralarında "." şeklinde çekmek istersen şöyle yazacaksın :
SELECT DATE_FORMAT(column_name, '%d.%m.%Y') FROM tablename
http://www.w3schools.com/sql/func_date_format.asp
-
Kayıt tarihini Date olarak ayarlar ve date("Y-m-d") formatında kayıt yaptırt.
Ya da DateTime olarak tanımla date("Y-m-d H:i:s") formatıyla kaydet.
-
teamviewer ile 1 tane üye kaydı yapabilecek var mı?
Ben çalıştıramıyorum bu kodları :/ -
Hocam nerde hata veriyor , söylersen ona göre yardımcı olalım
-
<?php /** * Created by PhpStorm. * User: YuSuF * Date: 30.06.2016 * Time: 12:43 */ try { $DbBaglanti = new pdo("mysql:host=localhost;dbname=phpstorm","root","", array(PDO::MYSQL_ATTR_INIT_COMMAND=>'SET NAMES UTF8', PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION) ); } catch(PDOException $ex) { echo "Hata oluştu.. Hata kodu : " . $ex->getMessage(); } if(!isset($_GET['islem'])) { $_GET['islem'] ="anasayfa"; } switch ($_GET['islem']) { case 'anasayfa': echo "<div id='uye-form'> <form action='index.php?islem=uye-ol' method='post'> <input type='email' name='email'> <br /> <input type='password' name='password'> <br /> <input type='submit' value='Üye oL'> </form> </div>"; break; case 'uye-ol': if(!isset($_POST['email']) || !isset($_POST['password'])) { echo "Veri gönderilmemiş"; } elseif ($_POST['email']=="" || $_POST['password']=="") { echo "Boş alan bırakmayın"; } else { $email = $_POST['email']; $sifre = $_POST['password']; $tarih = date('d.m.Y H:i:s'); try { $DbBaglanti->exec("SET NAMES utf8"); $sonuc=$DbBaglanti->exec("INSERT INTO denemeuye(email,sifre,kayittarihi) VALUES ('$email' , '$sifre' , '$tarih' ) "); echo "Üye kaydı başarılı şekilde gerçekleşti."; } catch(PDOException $e) { echo "Hata kodu => " . $e->getMessage(); } } break; default: echo "hatalı sayfa"; } ?>
-
Text alan tipi veritabanında daha fazla yer kaplayan daha masraflı bir türdür. Eğer belirli bir karakter sınırlaması varsa ona uygun varchar() tanımı yapılması hatırladığım kadarıyla daha ekonomikti.
Tarih konusunda da bildiğim kadarıyla timestamp damgası tutarsanız sonrasında php'nin yerleşik date fonksiyonuna bunu parametre girerek istediğiniz formatta gösterim yapabilirsiniz. Ayrıca süre kıyaslaması yapmak bunda daha kolaydır. Detay için unix timestamp diye aratın.
-
İnsert into set ne abi values olmasın o?