亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP 中的安全 SQL 更新

PHP 中的安全 SQL 更新

PHP
一只萌萌小番薯 2023-04-21 14:54:58
作為工作的一部分,我想使用表單更新數據庫。由于數據庫很大并且被很多用戶使用,我希望這種操作至少是安全的,以便更安全。HTML 腳本:<form action="http://localhost/modifier_infos_signaletique.php" method=POST >    <div class="id_sign">    <h5>Id "Signalétique" :</h5>    <input type="text" name="id_sign" id="id_sign"/><br>    </div>    <h5>Infos "Signalétique" : </h5>    <input class="comment" type="text" id="maj_infos" name="maj_infos" required maxlength='140'/><br>    <input type="submit" value="Submit" /></form>腳本:<?php    $user = 'xxxx';     $pass = 'xxxx';    try{        $dbconn = new PDO('pgsql:host=localhost;port=5432;dbname=xxxx',$user, $pass);        $dbconn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);        $maj = $_POST['maj_infos'];        $id = $_POST['id_sign'];        $query = $dbconn->prepare("UPDATE signaletique SET infos = ':infos' WHERE id = ':id'");        $query->bindParam(':infos', $maj, PDO::PARAM_STR);        $query->bindParam(':id', $id, PDO::PARAM_INT);        $query->execute();        echo 'Données mises à jour';    }    catch(PDOException $e){        echo "Erreur : " . $e->getMessage();    }?>但是,當我使用此腳本時,會出現此錯誤:**錯誤:SQLSTATE[HY093]:無效參數號::infos **該錯誤是由于用于 bindParam 函數的參數引起的。但是,我在我的 PostgreSQL 數據庫的屬性中有“字符變化”中的信息。我試圖將此參數更改為“文本”,但錯誤仍然存在。請原諒我提出這個問題,但我是 PHP 的新手,而且我的 SQL 技能很薄弱,因為我經常使用 pgAdmin 及其工具來構建我的數據庫并與之交互。這是我的數據庫的屏幕截圖:信息參數在屏幕截圖的“文本”中,但基本此屬性在“字符變化”(140) 中。感謝您的幫助。
查看完整描述

1 回答

?
POPMUISE

TA貢獻1765條經驗 獲得超5個贊

在您的查詢字符串中,您將單引號放在占位符周圍。這使它們成為字符串,而不是占位符。使用占位符時不需要引號。

這應該工作:
$query = $dbconn->prepare("UPDATE signaletique SET infos = :infos WHERE id = :id");


查看完整回答
反對 回復 2023-04-21
  • 1 回答
  • 0 關注
  • 122 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號