2016-02-03 4 views
3

Я просто учась использовать подготовленные заявления и застрял здесь. нет проблем с обычным методом. ничего не отображается, но данные не хранятся в базе данных, хотя отображаются «введенные данные».Данные не хранятся в подготовленных операциях

$db = new mysqli("localhost", "root","","learndb"); 

if ($db->connect_error) { 
    die("Connection failed this is the error: " . $db->connect_error); 
} 

$stmt = $db->prepare("INSERT INTO studentrecords (Name, email, Phone, school,dob,father,feereceived,due,image) VALUES (?,?,?,?,?,?,?,?,?)"); 
$stmt->bind_param("ssisssiib",$first,$email,$phone,$school,$dob,$father,$feereceived,$due,$image); 
$stmt->execute(); 

if($stmt) 
{ 
    echo"data entered"; 
} 

Update

Данные сохраняются, но требуется не тип. Должен ли я указывать все типы ввода пользователя? Также шаблон в html-форме не работает.

+0

Какой тип вашей 'переменной image' $? blob или string type? –

+0

@ Mr.Engineer blob type. – micky

ответ

0

Я предлагаю вам обернуть весь файл bind_param & с условием if, поскольку инструкция не будет подготовлена, если есть даже незначительная проблема. В этом случае я бы предположил, что может быть, что типы для каждой переменной/поля в какой-то момент неправильны - возможно, часть image/b.

Вы можете повторить тип каждого с помощью gettype, которые могли бы помочь отслеживать его вниз:

echo gettype($first), gettype($email), gettype($phone), 
    gettype($school), gettype($dob), gettype($father), 
    gettype($feereceived), gettype($due), gettype($image); 


$db = new mysqli("localhost", "root","","learndb"); 

if ($db->connect_error) { 
    die("Connection failed this is the error: " . $db->connect_error); 
} 

$stmt = $db->prepare("INSERT INTO studentrecords (`Name`, `email`, `Phone`, `school`,`dob`,`father`,`feereceived`,`due`,`image`) VALUES (?,?,?,?,?,?,?,?,?)"); 

if($stmt) { 
    $stmt->bind_param("ssisssiib",$first,$email,$phone,$school,$dob,$father,$feereceived,$due,$image); 
    $stmt->execute(); 
} else { 
    echo 'Failed to prepare the sql statement'; 
} 
+0

отображает все как строку. но я сделал dob как DATE в базе данных, но он не отображается как дата вместо 2053-4-4, он отображает только 2053. – micky

Смежные вопросы