База данных обработки ошибок с неопределенной переменной mysql

Как мне обработать ошибку переменной Msql Undefined. чтобы страница не выкидывала следующее ---

Примечание: неопределенная переменная: cond в D: \ xampp \ htdocs \ Vbay2 \ html \ vbayshowlisting.php в строке 400

Примечание: неопределенная переменная: cond в D: \ xampp \ htdocs \ Vbay2 \ html \ vbayshowlisting.php в строке 401

Примечание: неопределенная переменная: cond в D: \ xampp \ htdocs \ Vbay2 \ html \ vbayshowlisting.php в строке 402

Примечание: неопределенная переменная: cond в D: \ xampp \ htdocs \ Vbay2 \ html \ vbayshowlisting.php в строке 403

Я нашел способ перейти на свою страницу без подготовленной переменной, и затем страница выдает эти ошибки, есть ли способ избежать этого и вместо этого перейти на мою страницу wrror ..

Я предложу вам полный код PDO, но это не ошибка, я просто нашел способ перейти на страницу без определенной переменной или двух ..

$db = new PDO("mysql:host=localhost;dbname=nonofyourbusiness", 'root', ''); // 1. set database with this instead of conect - or change conect to this

                $query = "SELECT * FROM listings WHERE listID=?";

                $stat=$db->prepare($query);
                    if (!$stat){
                                $_SESSION['message'] = 'Database Request Error vbayshowlisting'; 
                                header("location: ../imageupload/error.php");
                                }
        if ($query){                
                if ($stat->execute(array("$listID"))) {


                while($row = $stat->fetch()){
                    $id=$row['id'];
                    $sellingtitle=$row['title'];
                    $sellinginfo=$row['info'];
                    $sellername=$row['sellername'];     
                    $phone1=$row['phone'];
                    $town=$row['town'];
                    $city=$row['city'];
                    $postcode=$row['postcode'];
                    $itemaccountname=$row['AccountName'];


                   if (strlen($postcode) > 8) $postcode = substr($postcode, 0, 8);

                  if (strlen($town) > 16) $town = substr($town, 0, 16);

                  if (strlen($city) > 16) $city = substr($city, 0, 16);


                    $price=$row['price'];

                    $cond=$row['cond'];

                    $locate=$row['location'];

                    if (strlen($locate) > 16) $locate = substr($locate, 0, 16);



                    $catagory=$row['catagory'];

                    $date=$row['date'];

                    $dateadded=$row['dateadded'];

                    $delivery=$row['delivery'];

                    $email=$row['email'];


                    $paypal=$row['paypal'];
                    if (!empty($paypal)) {$paypal=true;} else {$paypal=false;}


                    $facebook=$row['facebook'];
                    if (!empty($facebook)) {$facebook=true;} else {$facebook=false;}


                    $twitter=$row['twitter'];
                    if (!empty($twitter)) {$twitter=true;} else {$twitter=false;}


                    //been set through update sql query vbaysellshowdata


                    $feedback=$row['feedbackscore'];

                    $youtubeurl=$row['youtubevideo'];
                    $i0url=$row['image'];

                    $i1url=$row['image2'];
                    $i2url=$row['image3'];
                    $i3url=$row['image4'];
                    $i4url=$row['image5'];

                    //if was true / checked previously / will have url in database = !empty


                    };


                //grabs url of facebook for listing data  change to grab from profile in vbaysellmain.php
                }

                else
                {

                                header("location: ../imageupload/error.php");
                            echo "ITEM NO LONGER EXISTS";
                            die();
                            exit();             
                }           

    }
    else
        {
        header("location: ../imageupload/error.php");
        echo "ITEM NO LONGER EXISTS";
        die();
        exit();             
        }           

}
else
{

                header("location: ../imageupload/error.php");
            echo "No Post Data";
            die();
            exit();             
}           

не ловит ошибку ....

if (!$stat){
                                    $_SESSION['message'] = 'Database Request Error vbayshowlisting'; 
                                    header("location: ../imageupload/error.php");
                                    }

моя лучшая попытка обработки ошибок была это

//error handler  -- edit all mysql querys with this where applicable
                    $count = $stat->rowCount();

                    if ($count===0){
                        header("location: ../imageupload/error.php");
                    $_SESSION['message'] = "Item No Longer Exists";
                    die();
                    exit();         
                    }
Стоит ли изучать 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 и хотите разрабатывать...
1
0
683
2

Ответы 2

Вы можете либо включить error_reporting(0);, либо назначить переменную только в том случае, если значение не пустое. Например.:

 $dateadded= (!empty($row["dateadded"])) ? $row['dateadded'] : "empty here" ;

Вы могли бы использовать

try {
    $db->prepare($query);
} catch(Exception $e) {
    echo $e->getMessage();
}

Или используйте оператор if, который сам генерирует исключение внутри части try, например,

$stat = $db->prepare($query);

try {
    if (!$stat) {
        throw new Exception('Error message');
} catch(Exception $e) {
    echo $e->getMessage();
}

Обновлено: если вы хотите проверить, установлена ​​ли переменная или нет, вы можете использовать это условие.

if (isset($cond)) {
    // $cond variable is set.
} else {
    // $cond variable not set, set it here.
}

Большое спасибо, я обновлю свой код и исследую эту ошибку поймать штуку .. ура

lezz 06.12.2018 05:07

Ошибка синтаксического анализа: синтаксическая ошибка, неожиданное 'e' (T_STRING), ожидание '|' или переменная (T_VARIABLE)

lezz 06.12.2018 05:11

$ count = $ stat-> rowCount (); если ($ count === 0) {заголовок ("расположение: ../imageupload/error.php"); $ _SESSION ['message'] = "Предмет больше не существует"; умри(); выход(); }

lezz 06.12.2018 05:30

Я увидел, что я пропустил $ e в исключении как переменную, поэтому он должен быть похож на этот улов (исключение $ e)

Zakariya Harrak 07.12.2018 21:23

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