mysql — функция поиска работает, но функция вставки не работает в переполнении стека

Я самостоятельно изучаю язык 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>

Может кто-нибудь мне помочь? Спасибо любой аудитории.

0

Решение

Вы забыли одинарную кавычку (') после $data[1] в вашем запросе вставки.

Измените ваш запрос вставки с этим:

$sql = "INSERT INTO users (id, fname, lname, age) VALUES ('".$data[0]."','".$data[1]."','".$data[2]."','".$data[3]."')";
4

Другие решения

$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]."')";
2

  $sql = "INSERT INTO users (id, fname, lname, age) VALUES ('$data[0]','$data[1]','$data[2]','$data[3]')";
1

$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]')";
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector