簡體   English   中英

PHP的PDO更新查詢變量

[英]php pdo update query with variables

我希望有人能指出我在此更新中出錯的地方,我嘗試了各種方法,但似乎無法使其正常工作,這可能是一個簡單的錯誤,但我似乎找不到它。

function set_live($row_id, $mobile_number)
{
    global $conn;
    $live = 1;

    $sql = "
     UPDATE 
      connections 
     SET 
      live = :live, 
      voice_number = :mobile_number 
     WHERE 
      id = :row_id";

    $stmt = $conn->prepare($sql);
    $stmt->bindParam(':mobile_number', $mobile_number, PDO::PARAM_INT);
    $stmt->bindParam(':row_id', $row_id, PDO::PARAM_INT);
    $stmt->bindParam(':live', $live, PDO::PARAM_INT);
    $stmt->execute();

    echo "Record edited successfully";
    $conn=null;
}

$conn是與SELECT等一起使用的PDO連接,所有變量都是數字,並且都可以正常執行,因此在函數中,我可以使用phpmyadmin中的實際值運行查詢,並且可以正常運行

只需替換此行

$stmt->bindParam(':mobile_number', $mobile_number, PDO::PARAM_INT);

有了這個

$stmt->bindParam(':mobile_number', $mobile_number, PDO::PARAM_STR);

因為電話號碼的長度大於整數。

為什么不嘗試使用數組? 這種方法很可能為您完成了技巧:

    <?php
        function set_live($row_id, $mobile_number){
            global $conn;
            $live = 1;
            $sql    = "UPDATE connections SET live=:live, voice_number=:mobile_number WHERE id=:row_id";
            $stmt   = $conn->prepare($sql);
            $params = array(
                "live"          =>$live,
                "mobile_number" =>$mobile_number,
                "row_id"        =>$row_id,
            );

            $stmt->execute($params);
            echo "Record edited successfully";
            $conn=null;
        }

暫無
暫無

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

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