PHP 尝试执行准备好的语句时出错

PHP Error when trying to execute a prepared statement

我正在学习 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();
?>

您好,试试这个方法来测试您的查询是否成功执行。

$result = $stmt->execute();
if($result){
   echo 'success';
}else{
   echo 'error';
}

$stmt 是一个对象,您不能对其执行虚假评估来测试查询是否有效。

改为打印 $stmt->error 的值。

print($stmt->error);

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