Я получаю пустой набор при запросе базы данных MySQL

0

У меня есть эта проблема, которая в последнее время меня сбивает с ума, когда всякий раз, когда я пытаюсь запросить базу данных, я всегда получаю пустой результат!

Пожалуйста, помогите, и я здесь для получения дополнительной информации или деталей.

Это класс базы данных:

final class database
{

    private const DB_HOST     =   'localhost';
    private const DB_NAME     =   'branches';
    private const DB_CHARSET  =   'utf8';
    private const DB_USER     =   'public_user';
    private const DB_PASS     =   '1y37*V9ddGd@';
    public const EMAIL_TO    =   '[email protected]';

    public static function database_connect()
    {
            // setting DSN (Data Source Name)
            $dsn = 'mysql:host=' . self::DB_HOST . ';' . 'charset=' . self::DB_CHARSET;

        try {

            // creating a PDO (PHP Data Object) instance
            $pdo = new PDO($dsn, self::DB_USER, self::DB_PASS);
            $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

            return $pdo;

        } catch (PDOException $e) {

            if (DEBUG === true) {

                echo "<pre><br><var>";
                print_r('An error has occured during database connection initiation Big Boss: <br> ' . $e);
                echo "</var></pre><br>";

            } else {

                $headers  = "From: [email protected]" . "\r\n";
                $headers .= "Reply-To: No One" . "\r\n";
                $headers .= "MIME-Version: 1.0\r\n";
                $headers .= "Content-Type: text/html; charset=UTF-8\r\n";

                if (mail(self::EMAIL_TO, 'An error has occured', $e, $headers)) {

                    echo 'المعذرة حدث خطاء فادح! لقد تم إرسال الخطاء إلى مطور الموقع لمعالجتة.';

                } else {

                    echo 'الرجاء التواصل مع مدير موقع شركة الجزيرة إخوان للصرافة على الإيميل التالي: <br>
                    [email protected]';

                }

            }

        }

    }

    private function __clone() {}
}

и так я запрашиваю базу данных с индексной страницы:

    <?php
  $connection = Database::database_connect();
  $select_database = "use branches";
  Database::database_query($connection, $select_database);
                        $get_all_branches_query = "SELECT * FROM jazz_branches_ar WHERE branch_status = 1";
                        $query_results = Database::database_query($connection, $get_all_branches_query);
                        foreach ($query_results as $branch) {
                            echo "<tr>";
                                echo "<td>", htmlspecialchars(strip_tags(stripslashes(trim($branch['branch_fax'])))) , "</td>";
                                echo "<td><a class=\"inline-links\" href=\"tel:", htmlspecialchars(strip_tags(stripslashes(trim($branch['branch_tel'])))), "\">", htmlspecialchars(strip_tags(stripslashes(trim($branch['branch_tel'])))) ,"</a></td>";
                                echo "<td>", htmlspecialchars(strip_tags(stripslashes(trim($branch['branch_address'])))), "</td>";
                                echo "<td>", htmlspecialchars(strip_tags(stripslashes(trim($branch['branch_city'])))), "</td>";
                            echo "</tr>";
                        }
                        ?>

Заметки:

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

это мой старый класс базы данных, и, как вы могли видеть, это отрицает меры безопасности всех видов:

class Database
{
    private static $_db_host = 'mysql:host=localhost;charset=utf8';
    private static $_db_user = 'jazz_god';
    private static $_db_pass = 'LcaQVNH3qz6Cksow';
    public static function database_connect() 
    {
        return $db_info = new PDO(Database::$_db_host, Database::$_db_user, Database::$_db_pass);
    }
    public static function database_query($db_connection, $query) 
    {
        $statment = $db_connection->prepare($query);
        $statment->execute();
        $result = $statment->fetchAll(PDO::FETCH_ASSOC);
        return $result;
    }
}

и это код, используемый для запроса базы данных:

<?php
                    $connection = Database::database_connect();
                    $select_database = $connection->prepare('use jazz_agents_branches');
                    $select_database->execute();
                    $get_all_branches_query = "SELECT * FROM jazz_branches_ar WHERE branch_status = 1";
                    $query_results = Database::database_query($connection, $get_all_branches_query);
                    foreach ($query_results as $branch) {
                        echo "<tr>";
                            echo "<td>", htmlspecialchars(strip_tags(stripslashes(trim($branch['branch_fax'])))) , "</td>";
                            echo "<td><a class=\"inline-links\" href=\"tel:", htmlspecialchars(strip_tags(stripslashes(trim($branch['branch_tel'])))), "\">", htmlspecialchars(strip_tags(stripslashes(trim($branch['branch_tel'])))) ,"</a></td>";
                            echo "<td>", htmlspecialchars(strip_tags(stripslashes(trim($branch['branch_address'])))), "</td>";
                            echo "<td>", htmlspecialchars(strip_tags(stripslashes(trim($branch['branch_city'])))), "</td>";
                        echo "</tr>";
                    }
                    ?>

И хотя я подвергал свое приложение риску, я решил включить список библиотек и версию php, которые я использую ниже: Изображение 174551

  • 0
    Можете ли вы попробовать с =: paramname в операторе и при выполнении execute ([': paramname' => 1 "]) и вывести предложение« $ run_the_query-> fetchAll () »
  • 0
    Здравствуйте, @UlyssesMarx спасибо, но, к сожалению, результатов нет!
Показать ещё 49 комментариев
Теги:
database
pdo

1 ответ

0

Просто поставьте это:

$dsn = 'mysql:host=' . self::DB_HOST . ';' . 'charset=' . self::DB_CHARSET;

и на попытке:

 $connection = database::database_connect();
 $select_database = $connection->prepare('use branches');
 $select_database->execute();

Ваш код должен быть:

    <?php
  $connection = Database::database_connect();
  $select_database = "use branches";
  Database::database_query($connection, $select_database);
                        $get_all_branches_query = "SELECT * FROM jazz_branches_ar WHERE branch_status = 1";
                        $query_results = Database::database_query($connection, $get_all_branches_query);
                        foreach ($query_results as $branch) {
                            echo "<tr>";
                                echo "<td>", htmlspecialchars(strip_tags(stripslashes(trim($branch['branch_fax'])))) , "</td>";
                                echo "<td><a class=\"inline-links\" href=\"tel:", htmlspecialchars(strip_tags(stripslashes(trim($branch['branch_tel'])))), "\">", htmlspecialchars(strip_tags(stripslashes(trim($branch['branch_tel'])))) ,"</a></td>";
                                echo "<td>", htmlspecialchars(strip_tags(stripslashes(trim($branch['branch_address'])))), "</td>";
                                echo "<td>", htmlspecialchars(strip_tags(stripslashes(trim($branch['branch_city'])))), "</td>";
                            echo "</tr>";
                        }
                        ?>

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

public const EMAIL_TO    =   '[email protected]';
  • 0
    Теперь я получаю эту ошибку: Fatal error: Uncaught Error: Cannot access private const database::EMAIL_TO in /home/public/index.php:157 Stack trace: #0 {main} thrown in /home/public/index.php on line 157
  • 0
    и если я включаю error_reporting, это то, что я получаю первым: An error has occured during database retrival Big Boss: PDOException: SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected in /home/public/index.php:134 Stack trace: #0 /home/public/index.php(134): PDOStatement->execute(Array) #1 {main}
Показать ещё 20 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню