0

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
4

2 に答える 2

0

最初の文で $var 変数を使用し、2 番目の文で $idcarrito を使用しました。それが問題でしょうか?

于 2013-07-30T20:55:53.770 に答える