簡體   English   中英

嘗試執行准備好的語句時發生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();
?>

$ stmt是一個對象,您不能對其進行虛假評估以測試查詢是否有效。

打印$ stmt-> error的值。

print($stmt->error);

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

嗨,嘗試使用此方法來測試您的查詢是否成功執行。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM