国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

PHP-Abfrageaktualisierungsdaten
P粉938936304
P粉938936304 2024-04-01 13:41:23
0
1
655

Dies ist die Fehlermeldung, die ich erhalte:

UPDATE QUESTION SET situacao='Concluido' WHERE id=? Syntaxfehler oder Zugriffsverletzung: 1064 Es liegt ein Fehler in Ihrer SQL-Syntax vor; überprüfen Sie, wo das ??“ Die richtige Syntax steht in Zeile 1

Ich habe viele Dinge ausprobiert und am Ende konnte ich nur den Code unten verwenden, vielen Dank euch allen

P粉938936304
P粉938936304

Antworte allen(1)
P粉132730839

您已經(jīng)接近自己的答案了。正如 Slava Rozhnev 指出的那樣,盡管你的代碼對(duì) SQL 注入是開(kāi)放的。在您的問(wèn)題中,您在查詢中使用占位符。當(dāng)您準(zhǔn)備語(yǔ)句時(shí),您告訴 PDO:無(wú)論我放入其中的內(nèi)容,都不要執(zhí)行它,它只是數(shù)據(jù)。準(zhǔn)備好后,您可以將值綁定到占位符。這可以通過(guò) bindValuebindParam 或什至使用 execute()

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $stmt = $link->prepare($sql);
    $stmt->bindValue(1, $id);

    $stmt->execute();

    header("Location:verTodos.php");
} catch (PDOException $e) {

    echo $sql . "
" . $e->getMessage(); } $link = null; ?>

$stmt->bindValue(1, $id)讀取當(dāng)前值并用它替換占位符。如果您要使用循環(huán),并且 $id 會(huì)不斷變化,您可以使用 $stmt-bindParam(1, $id) 這會(huì)讀取 $id 執(zhí)行查詢時(shí)的變量。另一種選擇是刪除 bindValue 調(diào)用并讓 execute 綁定值。這可以通過(guò)將值數(shù)組作為參數(shù)添加到 execute 調(diào)用來(lái)完成。在您的情況下,這將是 $stmt->execute([$id])。我個(gè)人更喜歡執(zhí)行它,因?yàn)樗仍趫?zhí)行之前添加大量的 bindValue 調(diào)用要清晰得多。

另請(qǐng)注意,我已將 $sql 變量的賦值移至 try-catch 塊之外。這是因?yàn)槟朐?catch 中使用變量,如果 PDO 的構(gòu)造函數(shù)拋出 PDOException(在行 $link = new PDO("mysql:host=$servername;dbname= $dbname", $用戶名, $密碼);

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage