作為工作的一部分,我想使用表單更新數(shù)據(jù)庫。由于數(shù)據(jù)庫很大并且被很多用戶使用,我希望這種操作至少是安全的,以便更安全。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(); }?>但是,當(dāng)我使用此腳本時(shí),會(huì)出現(xiàn)此錯(cuò)誤:**錯(cuò)誤:SQLSTATE[HY093]:無效參數(shù)號(hào)::infos **該錯(cuò)誤是由于用于 bindParam 函數(shù)的參數(shù)引起的。但是,我在我的 PostgreSQL 數(shù)據(jù)庫的屬性中有“字符變化”中的信息。我試圖將此參數(shù)更改為“文本”,但錯(cuò)誤仍然存在。請(qǐng)?jiān)徫姨岢鲞@個(gè)問題,但我是 PHP 的新手,而且我的 SQL 技能很薄弱,因?yàn)槲医?jīng)常使用 pgAdmin 及其工具來構(gòu)建我的數(shù)據(jù)庫并與之交互。這是我的數(shù)據(jù)庫的屏幕截圖:信息參數(shù)在屏幕截圖的“文本”中,但基本此屬性在“字符變化”(140) 中。感謝您的幫助。
1 回答

POPMUISE
TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊
在您的查詢字符串中,您將單引號(hào)放在占位符周圍。這使它們成為字符串,而不是占位符。使用占位符時(shí)不需要引號(hào)。
這應(yīng)該工作:$query = $dbconn->prepare("UPDATE signaletique SET infos = :infos WHERE id = :id");
- 1 回答
- 0 關(guān)注
- 126 瀏覽
添加回答
舉報(bào)
0/150
提交
取消