Я самостоятельно изучаю язык php. Я создаю код PHP для вставки данных и поиска данных в базах данных. Я хочу вставить & поиск данных в базе данных с MySQL и PHP. Я использовал сервер WAMP. Наконец, функция поиска работает правильно, но функция вставки не работает.
Таблица
моя ошибка в
Неустранимая ошибка: необработанное исключение mysqli_sql_exception с сообщением
PHP-код:
if(isset($_POST['insert'])){
$data = getPosts();
$sql = "INSERT INTO users (id, fname, lname, age) VALUES ('$data[0]','$data[1],'$data[2]','$data[3]')";
$result= mysqli_query($connect,$sql);
if($result){
echo 'Insert is success.....';
}
else{
echo 'Insert is unsuccess';
}
}
function getPosts(){
$posts = array();
$posts[0] = $_POST['id'];
$posts[1] = $_POST['fname'];
$posts[2] = $_POST['lname'];
$posts[3] = $_POST['age'];
return $posts;
}
//Search
if(isset($_POST['search'])){
$data = getPosts();
$search_Query = "SELECT * FROM users WHERE id = $data[0]";
$search_Result = mysqli_query($connect, $search_Query);
if($search_Result)
{
if(mysqli_num_rows($search_Result))
{
while($row = mysqli_fetch_array($search_Result))
{
$id = $row['id'];
$fname = $row['fname'];
$lname = $row['lname'];
$age = $row['age'];
}
}
else{
echo 'No Data for this id';
}
}else{
echo 'Result Error';
}
}
HTML-код:
<form action="" method="post">
Enter Your Id: <input type="number" name="id" placeholder="Id" value="<?php echo $id;?>"><br><br>
Enter Your First Name: <input type="text" name="fname" placeholder="First Name" value="<?php echo $fname;?>"><br><br>
Enter Your Last Name:<input type="text" name="lname" placeholder="Last Name" value="<?php echo $lname;?>"><br><br>
Enter Your Age:<input type="number" name="age" placeholder="Age" value="<?php echo $age;?>"><br><br>
<div>
<input type = "submit" name="insert" value="Add">
<input type = "submit" name="search" value="Search">
</div>
</form>
Может кто-нибудь мне помочь? Спасибо любой аудитории.
Вы забыли одинарную кавычку ('
) после $data[1]
в вашем запросе вставки.
Измените ваш запрос вставки с этим:
$sql = "INSERT INTO users (id, fname, lname, age) VALUES ('".$data[0]."','".$data[1]."','".$data[2]."','".$data[3]."')";
$sql = "INSERT INTO users (id, fname, lname, age) VALUES ('$data[0]','$data[1],'$data[2]','$data[3]')";
Замените вышеуказанную строку на
$sql = "INSERT INTO users (id, fname, lname, age) VALUES ('{$data[0]}','{$data[1]}','{$data[2]}','{$data[3]}')";
или же
$sql = "INSERT INTO users (id, fname, lname, age) VALUES ('".$data[0]."','".$data[1]."','".$data[2]."','".$data[3]."')";
$sql = "INSERT INTO users (id, fname, lname, age) VALUES ('$data[0]','$data[1]','$data[2]','$data[3]')";
$sql = "INSERT INTO users (id, fname, lname, age) VALUES ('$data[0]','$data[1]','$data[2]','$data[3]')";
Вы пропустили один ‘в вашем запросе после '$data[1],
который должен быть '$data[1]'
$sql = "INSERT INTO users (id, fname, lname, age) VALUES ('$data[0]','$data[1],'$data[2]','$data[3]')";