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

尝试执行准备好的语句时出现PHP错误,php,database,prepared-statement,Php,Database,Prepared Statement,我正在学习PHP,最近还学习了预处理语句,所以我尝试修改了一段代码,可以在不使用预处理语句的情况下插入数据库 在修改代码之后,我似乎无法让它工作,我遵循了W3Schools指南,但我似乎找不到我的错误,知道我做错了什么吗 另外,如何回显$stmt的结果,以便显示任何错误?因为if(!$stmt){echo$stmt->error;}似乎不起作用 <?php $servername = "myServer"; $username = "myUsername"; $password =

我正在学习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是一个对象,您不能对其执行falsy求值以测试查询是否有效

改为打印$stmt->error的值

print($stmt->error);

谢谢,问题是我没有注意到我在
bind_param
函数上写错了一些字段。这确实告诉了我,
$stmt
错误D