php $stmt->bind_param から奇妙な結果が得られました。$var=5;
$consulta="UPDATE carrito SET status='$status' WHERE id_carrito='$var'";
準備して実行するとうまくいきます...しかし、これを行うとすぐに:
$consulta="UPDATE carrito SET status=? WHERE id_carrito=?";
if($stmt=$mysqli->prepare($consulta))
{
$stmt->bind_param("si",$status,$var);
.
.
.
それは動作を停止します、vars、大丈夫です実行後にそれらを印刷し、実際には正しい値を持っています、私はphpからエラーを取得しません、クエリが実行されます、それはmysql dbにも値を保存しません、これについて言及したいです準備されたステートメントで作業するのは初めてではありません。しばらく前からこれを行っています。私はまだ専門家ではありませんが、bind_param に何か問題があることを知る前に、これは私に起こったことはありませんが、私はしませんおかげで情報を見つけることができます。
ここに完全なコードがあります
/*_____________________ DATOS DE CONEXION _________________________*/
$mysqli = new mysqli('localhost', 'root', '', 'ambarb');
if(mysqli_connect_errno())
{
echo "Connection Failed: " . mysqli_connect_errno();
exit();
}
/*_____________________ fin de los datos de conexion _______________*/
$idcarrito=$_POST["id"];
$status="cancelado";
$resultado=array();
$consulta="UPDATE carrito SET status='$status' WHERE id_carrito=$idcarrito";
if($stmt=$mysqli->prepare($consulta))
{
//$stmt->bind_param("si",$status,$idcarrito);
$stmt->execute();
if($stmt->errno==true)
{
$resultado['status']='error';
}
else
{
$resultado['status']='ok';
}
$stmt->close();
}
else
{
$resultado['status']='error al preparar la consulta PHP ERROR CODE ';
}
echo json_encode($resultado);
//echo "el ide del carrito ".$idcarrito;
$mysqli->close();
?>
that code actually works, prints $resultado['status']=ok, but i think is not the point, because as soon as i change for this $consulta="UPDATE carrito SET status=? WHERE id_carrito=?"; with respective bind_param it stops working, i mean prints $resultado['status']=ok, but doesn't make anychange at database