簡體   English   中英

PHP PDO,綁定無效

[英]PHP PDO, Binding not working

這很新。 我的連接工作正常,可以從數據庫等中插入/選擇/刪除,但是一旦我開始嘗試使用綁定使其安全時,它什么也沒做。 整個下午,我一直以為這只是語法,我仍然很習慣,但是我嘗試了所有內容並經歷了無數教程。 一切正常,直到我開始綁定。 當我運行下面的代碼時,什么都沒有發生。 運行它並檢查我的數據庫后,沒有插入。

這是我現在的代碼...我已將其剝離為最基本的內容。 這不行嗎? 還有什么可能是錯的? 我開始認為我的服務器出了點問題。

<?php
//connection is working before this
$query = $db->prepare("INSERT INTO Players (Name) VALUES (:name)");
$query->bindParam(':name', 'John Smith');
$query->execute();
?>

以防萬一,這是我的連接例程。

try {
    $db = new PDO('mysql:host=localhost;dbname=xxx;charset=utf8',
        'xx', 'xxx', array(
            PDO::ATTR_EMULATE_PREPARES => false, 
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
         ));
    echo "Connected";
}
catch(PDOException $e)
{
    echo $e->getMessage();
}

連接沒有問題。

對於bindValue(),第一個參數需要是該值的標識符,在您的情況下,它將是':name'。 第二個參數是要綁定的值,它很可能是傳遞給您的方法的變量,因此它將是$ name,請看這里

    $dbHandler = self::getHandler();
    // Prepare the Query:
    $stmtHandler= $dbHandler->prepare("INSERT INTO Players (Name) VALUES (:name)");
    // Bind the value:
    $stmtHandler->bindValue(':name', $name);
    // Execute the Query:
    $stmtHandler->execute();

php.net可能會做一個更好的工作,解釋它為您HERE

希望對您有幫助。

暫無
暫無

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

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