2016-04-08 18 views
1

Bu yöntemi çalıştırdığımda bu hatayı aldım. Herhangi biri bana kodda neyin yanlış olduğunu açıklayabilir. Aşağıda erro o değer döndürmez bir insert çünkü ek N değişkenleri ama hiçbiri alanlarını bağlamak söylüyor benim fonksiyon koduHata: mysqli_stmt :: bind_result(): Bağımlı değişken sayısı, hazırlanan deyimde bulunan alanların sayısıyla eşleşmiyor

public function storeUser($name, $email, $password) { 
    $uuid = uniqid('', true); 
    $hash = $this->hashSSHA($password); 
    $encrypted_password = $hash["encrypted"]; // encrypted password 
    $salt = $hash["salt"]; // salt 

    $stmt = $this->conn->prepare("INSERT INTO users(unique_id, name, email, encrypted_password, salt, created_at) VALUES(?, ?, ?, ?, ?, NOW())"); 
    $stmt->bind_param("sssss", $uuid, $name, $email, $encrypted_password, $salt); 
    $stmt->execute(); 
    $result=$stmt->bind_result($uuid, $name, $email, $encrypted_password, $salt); 
    // $result = $stmt->execute(); 
    $stmt->close(); 

    // check for successful store 
    if ($result) { 
     $stmt = $this->conn->prepare("SELECT * FROM users WHERE email = ?"); 
     $stmt->bind_param("s", $email); 
     $stmt->execute(); 
     $user = $stmt->fetch(); 
     $stmt->close(); 

     return $user; 
    } else { 
     return false; 
    } 
} 
+0

Gerçekten şifre sağlamalarının kendi tuzları kullanmak olmamalı ve eğer gerçekten PHP'nin [yerleşik işlevleri] kullanmalıdır (http://jayblanchard.net/ şifre güvenliğini ele almak için proper_password_hashing_with_PHP.html). PHP sürümü 5.5'ten küçükse, 'password_hash()' [uyumluluk paketi] 'ni (https://github.com/ircmaxell/password_compat) kullanabilirsiniz. –

+0

@JayBlanchard bana basit bir örnek verebilir misin –

+0

Kavramları gösteren yorumlarda bağlantılar vardır. –

cevap

1

olduğunu. bind_result() select ifadelerinde kullanmalıdır.

, düzeltmek bu satırı kaldırmak için:

$result=$stmt->bind_result($uuid, $name, $email, $encrypted_password, $salt); 
+0

Ben daha önce INSERT üzerinde bağlama sonucu yaptım, bu yüzden bu tam düzeltme olmayabilir –

+1

aptalca hata –

+0

@ Fred-ii- i çift yapacağım ama bu sorunu düzeltmek için 'iş için' insert 6 sütun döndürmelidir LOL biliyorum çok çok çok garip xD – rray

İlgili konular