Отображается ошибка, не обновляющая значения в базе данных

Я создал форму, содержащую два поля имя и фамилию, но когда я запускаю приведенный ниже код, он показывает ошибку неопределенной переменной, и значения не вставляются в базу данных.

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myfd";
$conn=mysqli_connect($servername,$username,$password,$dbname);
if ($conn->connect_error){
echo "error";
}
else{
echo "successfull";
}
if (isset($_POST["submit"])){
$fname=$_POST["firstname"];
$lname=$_POST["lastname"];
$myfd_query = "INSERT INTO 'logi'('$fname','$lname') 
VALUES('$fname','$lname')";
}
try {
$myfd_result = mysqli_query($conn, $myfd_query);
if ($myfd_result) {
echo "successfull";
} else {
echo "error";
}
}
catch (Exception $exception){
echo "error";
}
?>

Для какой переменной он дает неопределенное значение?

Kamal Paliwal 27.10.2018 12:01

ты можешь подключиться к БД?

Dean 27.10.2018 12:02

Отправьте сообщение об ошибке, чтобы помочь нам, друг! Пожалуйста, прочтите эту статью, чтобы понять, почему вам нужно читать ошибки, и, возможно, понять, почему ваш код не работает.

Elias Soares 27.10.2018 12:04
INSERT INTO logi
Rotimi 27.10.2018 12:11

undefined для $ myfd_result. Да, я могу подключиться к БД. Примечание: неопределенная переменная: myfd_query в C: \ xampp \ htdocs \ myf \ home.php в строке 20, это ошибка.

Faateih 27.10.2018 12:20
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
5
57
5

Ответы 5

Имя переменной указано неверно. Пожалуйста, обновите имя переменной.

Вставить синтаксис запроса:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

Примечание: неопределенная переменная: myfd_query в C: \ xampp \ htdocs \ myf \ home.php в строке 20

Faateih 27.10.2018 13:09

Успешное уведомление: неопределенная переменная: myfd_query в C: \ xampp \ htdocs \ myf \ home.php в строке 21 Предупреждение: mysqli_query (): пустой запрос в C: \ xampp \ htdocs \ myf \ home.php в строке 21 ошибка

Faateih 27.10.2018 13:10

Попробуйте это в своем запросе

$myfd_query = "INSERT INTO `logi`(`firstname`,`lastname`) 
VALUES('".$fname."','".$lname."')";

попробуй это.

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myfd";
$conn=mysqli_connect($servername,$username,$password,$dbname);
if ($conn->connect_error){
echo "error";
}
else{
echo "successfull";
}
if (isset($_POST["submit"])){
$fname=$_POST["firstname"];
$lname=$_POST["lastname"];
$myfd_query = "INSERT INTO 'logi'('$fname','$lname') 
VALUES('$fname','$lname')";
try {
$myfd_result = mysqli_query($conn, $myfd_query);
if ($myfd_result) {
echo "successfull";
} else {
echo "error";
}
}
catch (Exception $exception){
echo "error";
}
}
?>

Это связано с тем, что область видимости этой переменной $ myfd_query находится только внутри блока if. Попробуйте объявить этот запрос вне или попробуйте использовать его в той же области. Также можно попробовать:

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myfd";
$conn = mysqli_connect($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    echo "error";
} else {
    echo "successfull";
}
$myfd_query = "";
if (isset($_POST["submit"])) {
    $fname = $_POST["firstname"];
    $lname = $_POST["lastname"];
    $myfd_query = "INSERT INTO 'logi'('$fname','$lname') 
VALUES('$fname','$lname')";
}
try {
    $myfd_result = mysqli_query($conn, $myfd_query);
    if ($myfd_result) {
        echo "successfull";
    } else {
        echo "error";
    }
} catch (Exception $exception) {
    echo "error";
}
?>

Пожалуйста, пожалуйста, всегда форматируйте свой код. Это будет намного легче понять даже автору этого кода.

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myfd";
$conn=mysqli_connect($servername,$username,$password,$dbname);
if ($conn->connect_error){
    echo "error";
} else{
    echo "successfull";
}
if (isset($_POST["submit"])){
    $fname=$_POST["firstname"];
    $lname=$_POST["lastname"];
    $myfd_query = "INSERT INTO 'logi'('$fname','$lname') VALUES('$fname','$lname')";
}
try {
    $myfd_result = mysqli_query($conn, $myfd_query);
    if ($myfd_result) {
        echo "successfull";
    } else {
        echo "error";
    }
} catch (Exception $exception){
    echo "error";
}

хорошо, поехали.

Проблема № 1. В случае ошибки подключения скрипт покажет текст error и продолжит выполнение.

Проблема 2. посмотрите, вы устанавливаете переменную только при isset($_POST["submit"]), но всегда выполняете запрос.

Проблема 3. Ваш запрос неверен. вместо того $myfd_query = "INSERT INTO 'logi'('$fname','$lname') VALUES('$fname','$lname')"; должен выглядеть примерно так: $myfd_query = "INSERT INTO 'logi'(firstname,lastname) VALUES('$fname','$lname')";, однако (я не знаю точных имен полей в вашей таблице Логи)

Проблема 4. Не заключайте имя таблицы в кавычки с помощью символов 'или ", некоторые конфигурации mysql не принимают имя таблицы в кавычках. Лучше использовать обратный апостроф:`

Проблема 5. Лучше использовать заполнители вместо того, чтобы помещать переменные внутри строки. Это способ SQL-инъекций. И лучше получить практику всегда использовать заполнители. См. Пример здесь

Другие вопросы по теме