2015-10-20 2 views
1

Я изучаю PHP и недавно узнал о подготовленных инструкциях, поэтому я попытался изменить рабочий фрагмент кода, который у меня был, где я мог вставлять в базу данных без использования подготовленных операторов.Ошибка PHP при попытке выполнить подготовленный оператор

После изменения моего кода кажется, что я не могу заставить его работать, я следовал руководству W3Schools, но я не могу найти свою ошибку, не знаю, что я делаю неправильно?

Также, как я могу эхо результат моего $ stmt, чтобы я мог отображать любую ошибку, которую у меня есть? потому что if(!$stmt){echo $stmt->error;}, похоже, не работает.

<?php  
$servername = "myServer"; 
$username = "myUsername"; 
$password = "myPw"; 
$dbname = "myDB"; 

$globalID=intval($_GET['globalID']); 
$nombreEsposo=$_GET['nombreEsposo']; 
$trabajoEsposo=$_GET['nombreEsposa']; 
$nombreEsposa=$_GET['trabajoEsposo']; 
$trabajoEsposa=$_GET['nombreEsposa']; 
$domicilio=$_GET['domicilio']; 
$colonia=$_GET['colonia']; 
$localidad=$_GET['localidad']; 
$telefono=intval($_GET['telefono']); 
$miembrosFamilia=intval($_GET['miembrosFamilia']); 
$numeroHombres=intval($_GET['numeroHombres']); 
$numeroMujeres=intval($_GET['numeroMujeres']); 
$numeroEstudiantes=intval($_GET['numeroEstudiantes']); 
$miembrosTrabajan=intval($_GET['miembrosTrabajan']); 


// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$stmt = $conn->prepare("INSERT INTO datosfamilia (idReporte,nombreEsposo,trabajoEsposo,nombreEsposa,trabajoEsposa,domicilio,colonia,localidad,telefono,miembrosFamilia,numHombres,numMujeres,numEstudiantes,numTrabajan) 
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); 

$stmt->bind_param("isssssssiiiiii",$globalID,$nombreEsposo,$trabajoEsposo,$nombreEsposa,$trabajoEsposa,$domicilio,$colonia,$localidad,$telefono,$miembrosFamilia,$numHombres,$numMujeres,$numeroEstudiantes,$numTrabajan); 

$stmt->execute(); 
$stmt->close(); 
$conn->close(); 
?> 

ответ

1

$ stmt - объект, и вы не можете выполнить фальшивую оценку на нем, чтобы проверить, работал ли запрос.

Вместо этого напечатайте значение ошибки $ stmt->.

print($stmt->error); 

http://php.net/manual/en/mysqli-stmt.error.php

+0

Спасибо, проблема была я не заметил, что я писал некоторые из моих полей неправильных на моем 'bind_param' функции. Который повторяет ошибку '$ stmt', действительно сказал мне. : D – Omaruchan

0

Привет, попробуйте этот метод, чтобы проверить, успешно ли ваш запрос или нет.

$result = $stmt->execute(); 
if($result){ 
    echo 'success'; 
}else{ 
    echo 'error'; 
} 
Смежные вопросы