簡體   English   中英

PHP的bind_param無法正常工作

[英]php bind_param is not working

我從php $ stmt-> bind_param得到了奇怪的結果,這是發生了什么...如果我這樣做$ status =“ something”; $ 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

您在第一句中使用了$ var變量,在第二句中使用了$ idcarrito。 可能是問題所在嗎?

我寫了一個擴展mysqli的類。 它會自動處理所有bind_params並使得使用mysqli變得容易。 您可以在此處下載該類: Better_mysqli.php

此頁面顯示其基本用法: basic_usage.php

此頁面顯示詳細用法: detailed_usage.php

暫無
暫無

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

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