PHP veritabanına veri kaydedilmiyor

Katılım
8 Nisan 2020
Mesajlar
6.583
Makaleler
7
Çözümler
63
Yer
Mile Marker LN 29.5, 51 Area.
Merhabalar. PHP ile bir giriş sistemi yaptım ancak veritabanına veriyi kaydettiremiyorum. Kod şu şekilde:

PHP:
// Username ve Password tanımı
$username = $_POST['username'];
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);


// Veritabanına yüklemeye çalıştığım kısım
$sql_insert  = "INSERT INTO users(`username`,`password`,`pre`,`bakiye`,`uyelik`,`gi`,`ai`) values ($username,$password,'0','5.00','Baslangic','50','300')";
$stmt_insert = $con->prepare($sql_insert) or die ($con->error);
$stmt_insert->bind_param('ss',$username,$password);
$stmt_insert->execute();
$stmt_insert->close();

Niye olabilir?
 
Kodunda hatalar var. Bu şekilde dene;

PHP:
$username = $_POST['username'];
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);

$sql  = "INSERT INTO users (`username`,`password`,`pre`,`bakiye`,`uyelik`,`gi`,`ai`) VALUES (?,?,0,5,'Baslangic',50,300)";
$stmt = $con->prepare($sql);
$stmt->execute([$username, $password]);

$con = null;
 
Hata kodu veriyor mu? Veriyorsa ne yazıyor?
 
Ek olarak MySQL 8 kullanıyorsan bu tarz stabilizasyon hataları olabiliyor.
Hocam attığınız kodu kullandım ve tekrar aynısı oldu. Veritabanına kaydetmedi, kaydetmediği için de giriş yaparken "kullanıcı bulunamadı" diyor.

Hocalarım sanırım benim "registerForm.php" dosyamda, veya kayıt ekranımda bir problem var. Çünkü parola 5 haneden küçükse hata vermesi gerekiyor, onu da vermiyor. "registerForm.php" kodumu şöyle bırakıyorum:

PHP:
<?php

// Veritabanı bağlanma
include_once '../includes/baglan.php';

$username = $_POST['username'];
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);

$sql = "SELECT username FROM users WHERE username = ?";
$stmt = $con->prepare($sql) or die ($con->error);
$stmt->bind_param('s',$username);
$stmt->execute();
$result = $stmt->get_result();
$count = $result->num_rows;

if($count > 0) {
    exit('error1');
}

if(strlen($_POST['password']) < 5) {
    exit('error2');
}

if($_POST['password'] != $_POST['confirmPassword']) {
    exit('error3');
}

$sql  = "INSERT INTO users (`username`,`password`,`pre`,`bakiye`,`uyelik`,`gi`,`ai`) VALUES (?,?,0,5,'Baslangic',50,300)";
$stmt = $con->prepare($sql);
$stmt->execute([$username, $password]);

$con = null;

?>
 
Son düzenleme:
@Webcam kullanan insan bunu da şu şekilde düzelt. PDO mantığını bilmiyorsun gibi. Temellere bir bakmanı öneririm.

PHP:
<?php

// Veritabanı bağlanma
include_once '../includes/baglan.php';

$username = $_POST['username'];
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);

$stmt = $con->prepare("SELECT username FROM users WHERE username=?");
$stmt->execute($username);
$result = $stmt->fetchAll();

if(count($result) != 0) {
    exit('error1');
}

if(strlen($_POST['password']) < 5) {
    exit('error2');
}

if($_POST['password'] != $_POST['confirmPassword']) {
    exit('error3');
}

$sql  = "INSERT INTO users (`username`,`password`,`pre`,`bakiye`,`uyelik`,`gi`,`ai`) VALUES (?,?,0,5,'Baslangic',50,300)";
$stmt = $con->prepare($sql);
$stmt->execute([$username, $password]);

$con = null;
 
@Webcam kullanan insan bunu da şu şekilde düzelt. PDO mantığını bilmiyorsun gibi. Temellere bir bakmanı öneririm.

PHP:
<?php

// Veritabanı bağlanma
include_once '../includes/baglan.php';

$username = $_POST['username'];
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);

$stmt = $con->prepare("SELECT username FROM users WHERE username=?");
$stmt->execute($username);
$result = $stmt->fetchAll();

if(count($result) != 0) {
    exit('error1');
}

if(strlen($_POST['password']) < 5) {
    exit('error2');
}

if($_POST['password'] != $_POST['confirmPassword']) {
    exit('error3');
}

$sql  = "INSERT INTO users (`username`,`password`,`pre`,`bakiye`,`uyelik`,`gi`,`ai`) VALUES (?,?,0,5,'Baslangic',50,300)";
$stmt = $con->prepare($sql);
$stmt->execute([$username, $password]);

$con = null;
Yok hocam, bu da çözmedi. Bu hataları kendim çözebilmem için MySQL öğrensem, işe yarar mı? Giriş sistemini kendim yazmamıştım.
 
@Webcam kullanan insan tüm dosyaları sıkıştırıp atar mısın? Bir inceleyeyim.
Eve gidince register ve register-form'u atacağım. Ne yazık ki tüm dosyaları sıkıştırmam pek mümkün değil gibi, ama deneyeceğim. Basit bir giriş sistemi yapmaya çalışmıştım ama olmadı, eve gidince bilgilendireceğim.
@Berkay Davas hocam dosyaları size burdan değil de, başka bir yerden atma şansım var mı?
@Berkay Davas hocam dosyaları size burdan değil de, başka bir yerden atma şansım var mı? Daha demin mesajı önce çıkartmayı unutmuşum, o yüzden sanırım mesajım size iletilmedi.
 
Son düzenleme:

Geri
Yukarı