Я создаю приложение PHP, которое будет составлять список компьютеров. Этот список будет генерироваться динамически. Таким образом, я пытаюсь вставить данные в базу данных MYSQL. Приведенный ниже код не предназначен для предоставления ответа пользователю, если не возникает ошибка.
Я получаю сообщение об ошибке:
Предупреждение: PDOStatement :: execute(): SQLSTATE [HY093]: недопустимый номер параметра: количество связанных переменных не совпадает с числом токенов в C:\xampp\htdocs\netman\connect.php в строке 39
Мой код:
$stmt = $db->prepare("UPDATE bots SET compName=':compName', username=':username',
ramTotal=':ram', vendor=':vendor', IP=':IP', last=NOW() WHERE machineID = :machID");
$stmt->execute([
"machID" => $_GET['machineID'],
"compName" => $_GET['compName'],
"username" => $_GET['user'],
"vendor" => $_GET['vendor'],
"ram" => $_GET['memory'],
"IP" => $_SERVER['REMOTE_ADDR']
]);
Глупая ошибка, которую я сделал:
Вы не ставите значения переменной привязки в кавычки compName =: compName - @RaymondNijland
Новый код:
$stmt = $db->prepare("UPDATE bots SET compName=:compName, username=:username,
ramTotal=:ram, vendor=:vendor, IP=:IP, last=NOW() WHERE machineID = :machID");
$stmt->execute([
"machID" => $_GET['machineID'],
"compName" => $_GET['compName'],
"username" => $_GET['user'],
"vendor" => $_GET['vendor'],
"ram" => $_GET['memory'],
"IP" => $_SERVER['REMOTE_ADDR']
]);
Благодарю вас
compName=:compName