Ниже мой код, я не могу исправить эту ошибку, я хотел разместить здесь все свое приложение, но оно слишком длинное, и я не мог, поэтому я поместил его на диск, я просто знаю основы программирования, а мое приложение не даже работать вообще, так что не о чем беспокоиться о https://drive.google.com/open?id=1n6q9PwPBXpJd1tmgR3nfXg_Caeba8g_g, это мое полное приложение, я знаю, что вам не нужен весь код, только соответствующий, но я не знаю, что не так, поэтому я не знаю, что уместно, я удалю это, когда вы помогаете, если это необходимо, спасибо вам всем.
<?php
//link files
require 'db.php';
$message = '';
//get user input from the form
if (isset ($_POST['placa']) && isset ($_POST['serialcarroria']) && isset ($_POST['serialchasis']) && isset ($_POST['serialmotor']) &&
isset ($_POST['marca']) && isset ($_POST['modelo']) && isset ($_POST['year']) &&
isset ($_POST['color']) && isset ($_POST['tipo']) && isset ($_POST['uso']) &&
isset ($_POST['nropuestos']) && isset ($_POST['nroejes']) && isset ($_POST['capcarga']) &&
isset ($_POST['servicio']) ) {
$placa = $_POST['placa'];
$serialcarroria = $_POST['serialcarroria'];
$serialchasis = $_POST['serialchasis'];
$serialmotor = $_POST['serialmotor'];
$marca = $_POST['marca'];
$modelo = $_POST['modelo'];
$year = $_POST['year'];
$color = $_POST['color'];
$tipo = $_POST['tipo'];
$uso = $_POST['uso'];
$nropuestos = $_POST['nropuestos'];
$nroejes = $_POST['nroejes'];
$capcarga = $_POST['capcarga'];
$servicio = $_POST['servicio'];
//SQL - add data to database
$sql = 'INSERT INTO vehiculo(placa,serialcarroria,serialchasis,serialmotor,marca,modelo,year,color,tipo,uso,nropuestos,nroejes,capcarga,servicio) VALUES(:placa,:serialcarroria,:serialchasis,:serialmotor,:marca,:modelo,:year,:color,:tipo,:uso,:nropuestos,:nroejes,:capcarga,:servicio)';
$statement = $connection->prepare($sql); //////<-PROBLEM ON THIS LINE//////
if ($statement->execute([':placa' => $placa, ':serialcarroria' => $serialcarroria , ':serialchasis' => $serialchasis , ':serialmotor' => $serialmotor, ':marca' => $marca, ':modelo' => $modelo,':year' => $year, ':color' => $color, ':tipo ' => $tipo ,':uso ' => $uso , ':nropuestos ' => $nropuestos , ':nroejes ' => $nroejes , ':capcarga ' => $capcarga , ':servicio ' => $servicio])) {
$message = 'data inserted successfully';
}
else {
$message = 'Sorry, there has been a problem inserting your details..';
}
}
И только соответствующий код ...
1 / Не могли бы вы добавить сюда свой код? 2 / Какой параметр не определен в строке 30? 3 / Вы уверены, что все ваши параметры возвращают значение? Попробуйте немного var_dump( /* your param */ ), чтобы убедиться, что вы получите все по хорошей цене. 4 / Попробуйте заменить isset на !empty, может быть, чтобы избежать пустой строки или нулевого значения?
хорошо, извини, я новенький, я сделаю это лучше
Ваша проблема в том, что не каждый из заполнителей INSERT INTO ... (:placa, ...) также соответствует [':placa' => ...] в execute(). Некоторые или несколько отсутствуют или являются посторонними. Пройдите их по одному.
Я проверял, что несколько раз у меня есть 14 параметров в каждом, в моей базе данных 15, но 15 - это идентификатор, и он автоматически увеличивается, поэтому мне не нужно его включать
Я очень ценю любую помощь, я просто студент, я знаю, что ты справишься лучше меня






Попробуйте мой код ниже, чтобы узнать, работает ли он. Сообщите мне, какие ошибки вы получаете
В вашем <form> просто поместите скрытое текстовое поле с именем id, например:
<form>
<input type = "hidden" name = "id">
</form>
А затем в вашем PHP сделайте это:
<?php
$host = "localhost";
$user = "db_user";
$pass = "db_pass";
$db = "db_name";
$charset = 'utf8mb4';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
try {
$opt = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, ];
$connection = new PDO($dsn, $user, $pass, $opt);
if (isset($_POST['placa'])) {
//I don't see a reason to have all of those isset...just make it so that there's one field that
//is absolutely required and cannot be left empty and work from there.
$statement = $connection->prepare("INSERT INTO vehiculo (id, placa, serialcarroria, serialchasis, serialmotor, marca, modelo, year, color, tipo, uso, nropuestos, nroejes, capcarga, servicio)
VALUES (:id, :placa, :serialcarroria, :serialchasis, :serialmotor, :marca, :modelo, :year, :color, :tipo, :uso, :nropuestos, :nroejes, :capcarga, :servicio)");
$statement->bindParam(':id', $id);
$statement->bindParam(':placa', $placa);
$statement->bindParam(':serialcarroria', $serialcarroria);
$statement->bindParam(':serialchasis', $serialchasis);
$statement->bindParam(':serialmotor', $serialmotor);
$statement->bindParam(':marca', $marca);
$statement->bindParam(':modelo', $modelo);
$statement->bindParam(':year', $year);
$statement->bindParam(':color', $color);
$statement->bindParam(':tipo', $tipo);
$statement->bindParam(':uso', $uso);
$statement->bindParam(':nropuestos', $nropuestos);
$statement->bindParam(':nroejes', $nroejes);
$statement->bindParam(':capcarga', $capcarga);
$statement->bindParam(':servicio', $servicio);
$id = $_POST['id'];
$placa = $_POST['placa'];
$serialcarroria = $_POST['serialcarroria'];
$serialchasis = $_POST['serialchasis'];
$serialmotor = $_POST['serialmotor'];
$marca = $_POST['marca'];
$modelo = $_POST['modelo'];
$year = $_POST['year'];
$color = $_POST['color'];
$tipo = $_POST['tipo'];
$uso = $_POST['uso'];
$nropuestos = $_POST['nropuestos'];
$nroejes = $_POST['nroejes'];
$capcarga = $_POST['capcarga'];
$servicio = $_POST['servicio'];
if ($statement->execute()) {
echo 'data inserted successfully';
} else {
echo 'Sorry, there has been a problem inserting your details..';
}
}
}
catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
$connection = null;
?>
Я пробовал ваш код, и вот что я получаю PHP Notice: Undefined index: id в /create.php в строке 30
$ connection = новый PDO ($ dsn, $ username, $ password, $ options); } catch (PDOException $ e) {} это исходное значение моей переменной подключения
В вашей БД как называется первичный ключ? это называется id? или id_post? или что? Также см. Обновленный код @GabrielAndres
Мой первичный ключ - это идентификатор, хорошо, я попробую
Я просто понимаю, что пропустил часть формы <form method = "post"> <div class = "form-group"> <label for = "placa"> placa </label> <input type = "text" name = "placa" id = "placa" class = "form-control"> </div> <div class = "form-group"> <label for = "SerialCarroria"> serialcarroria </label> <input type = "text" name = "serialcarroria" id = "serialcarroria" class = "form-control"> </div> это моя исходная форма, мне нужно сделать что-то вроде этого? я поставлю его ниже, потому что он слишком длинный
<form method = "post"> <div class = "form-group"> <label for = "placa"> placa </label> <input type = "hidden" name = "id" id = "placa" class = "form-control"> </div> <div class = "form-group"> <label for = "SerialCarroria"> serialcarroria </label> <input type = "hidden" name = "id" id = "serialcarroria" class = "form-control"> </div>
я попробую это извините за пропущенную часть
Я пробовал, не работает, это так неприятно, я хотел бы опубликовать весь свой код, чтобы вы могли его изучить и найти проблему, которую я изучал в течение двух недель, и я не понимаю, я искал в Интернете, я Собираюсь почистить свой код, ваше право, мне не нужны те, если с одним достаточно, извините, если это слишком долго, но моя окончательная оценка зависит от этого, я в отчаянии
Приходите пообщаться со мной здесь discord.gg/KTjN7P, чтобы я мог помочь вам более свободно. @GabrielAndres
имя моей учетной записи - cazador
Я написал тебе @GabrielAndres
Можете ли вы включить сюда свой код, а не диск?