В рамках работы я хочу обновить базу данных с помощью формы. Поскольку база данных велика и используется многими пользователями, я надеюсь, что эта манипуляция по крайней мере безопасна для большей безопасности.
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 скрипт:
<?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();
}
?>
Однако, когда я использую этот сценарий, появляется эта ошибка:
** Erreur: SQLSTATE [HY093]: недопустимый номер параметра:: infos **
ошибка может быть связана с параметром, используемым для функции bindParam. Тем не менее, у меня в свойствах моей базы данных PostgreSQL есть информация в разделе «характер меняется». Я попытался изменить этот параметр на «текст», но ошибка осталась прежней.
Простите меня за этот вопрос, но я новичок в PHP, и мои SQL навыки невелики, так как я использую pgAdmin и у него много инструментов для создания и взаимодействия с моими базами данных.
Вот скриншот моей базы данных:
Параметр info находится в «тексте» на снимке экрана, но обычно c это свойство было в «символах различаются» (140).
Спасибо за вашу помощь.