PHP PDO Ekle Query hazırlanmıştır.

1 Cevap php

MySQL ile php hazırlanmış sorguları yapmak için PDO kullanıyorum. Sorgu hatasız yürütür ama bir parametre düzgün değerini geçmez. Bu boş bir alan olarak calışmaya geliyor, ama null değil. Ben kodu diğerleri gibi aynı girmiş görünüyor gibi gerçekten garip ders çalışma cezası hangi. Gerçekten sinir bozucu.

$f_name = $_POST['f_name'];
$l_name = $_POST['l_name'];
$email = $_POST['email'];
$pass = $_POST['pass'];
$address1 = $_POST['address_1'];
$address2 = $_POST['address_2'];
$suburb = $_POST['suburb'];
$city = $_POST['city'];
$country = $_POST['country'];
$phone = $_POST['phone'];



include('db_connect.php'); 

$stmt = $db_connection->prepare('INSERT INTO tblUser (userID,fName, lName, email, password, addressLine1, suburb, city, country, phone) VALUES( NULL, :f_name, :l_name, :email, :pass, :address1, :suburb, :city, :country, :phone)');
$stmt->bindParam(':f_name', $f_name, PDO::PARAM_STR);
$stmt->bindParam(':l_name', $l_name, PDO::PARAM_STR);
$stmt->bindParam(':email', $email, PDO::PARAM_STR);
$stmt->bindParam(':pass', $pass, PDO::PARAM_STR);
$stmt->bindParam(':address1', $address1, PDO::PARAM_STR);
//$stmt->bindParam(':address2', $address2, PDO::PARAM_STR);
$stmt->bindParam(':suburb', $suburb, PDO::PARAM_STR);
$stmt->bindParam(':city', $city, PDO::PARAM_STR);
$stmt->bindParam(':country', $country, PDO::PARAM_STR);
$stmt->bindParam(':phone', $phone, PDO::PARAM_STR);

try {
	$stmt->execute();
	print_r($stmt);
	$result = $stmt->fetchAll();
}
catch (Exception $e) {
	echo $e;
}

Print_r ($ _POST) çıkış; olan: Array ([email] => test@test.com [pass_confirm] => geçmek [f_name] => fefs [l_name] => sfasafs [address_1] => sfafsa [address_2] => dsfsafsaf geçmek => [pass] [banliyösünde] => dffdsa [şehir] => dsffdf [ülke] => sfaafdsa [telefon] => fsaafssaf [göndermek] => Kayıt)

Sorun veritabanını yeni bir rekor ile doldurulur, ancak şifre alanına bir boş olmasıdır. Ben şeyleri kolaylaştırmak için karma kaldırıldı.

Burada kullanıcı tablonun SQL olduğunu:

CREATE TABLE IF NOT EXISTS `tbluser` (
  `userID` int(11) NOT NULL AUTO_INCREMENT,
  `password` varchar(40) NOT NULL,
  `email` varchar(60) NOT NULL,
  `addressLine1` varchar(30) DEFAULT NULL,
  `addressLine2` varchar(30) DEFAULT NULL,
  `suburb` varchar(30) DEFAULT NULL,
  `city` varchar(30) DEFAULT NULL,
  `country` varchar(40) DEFAULT NULL,
  `phone` varchar(25) DEFAULT NULL,
  `fName` varchar(30) DEFAULT NULL,
  `lName` varchar(30) NOT NULL,
  `admin` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`userID`),
  UNIQUE KEY `email` (`email`),
  UNIQUE KEY `email_3` (`email`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;

1 Cevap

Eğer herhangi bir şans db_connect.php in $pass yok tanımlamak için olmaz? Bunu yaparsanız, bu sizin orijinal beyanname üzerine yazılır.