PHP Невозможно получить большие данные из базы данных - PullRequest
0 голосов
/ 27 марта 2020

Функция getUsers_Test() может извлекать данные с ограничением в 10 строк только тогда, когда мой getUsers_Orig() не может извлекать какие-либо записи ** моя запись в базе данных составляет почти 50 строк *. Нет ошибок, нет предупреждений. (PHP версия 5.5.12)

function getUsers_Test(){
    $sql = "SELECT TOP 10 a.user_name, a.user_level, a.user_status, b.* FROM user_access a, user_details b WHERE a.emp_code = b.emp_code ORDER BY a.id DESC";
    try{
        $data = array();
        $db = null;
        $db = connectDB();
        $stmt = $db->prepare($sql);
        $stmt->execute();
        $data = $stmt->fetchAll();

    }catch(PDOException $e){
        $data['message'] = "Error: " . $e;
    }
    echo json_encode($data);
}

    function getUsers_Orig(){
    $sql = "SELECT a.user_name, a.user_level, a.user_status, b.* FROM user_access a, user_details b WHERE a.emp_code = b.emp_code ORDER BY a.id DESC";
    try{
        $data = array();
        $db = null;
        $db = connectDB();
        $stmt = $db->prepare($sql);
        $stmt->execute();
        $data = $stmt->fetchAll();

    }catch(PDOException $e){
        $data['message'] = "Error: " . $e;
    }
    echo json_encode($data);
}

    function connectDB() {
    $dbuser = "myusername";
    $dbpass = "mypassword";
    $dbh = new PDO('odbc:databaseName', $dbuser, $dbpass);
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    return $dbh;
}

Ответы [ 2 ]

0 голосов
/ 27 марта 2020

Размер данных здесь не проблема, данные, которые я выбирал, имеют специальный символ (A 'для С). Я использую, чтобы добавить кодировку UTF-8 в свое соединение, но все же я не смог получить его.

Эта проблема возникает, когда я выполняю Generate Script и извлекаю данные из MS SQL вместо Backup and Restore. Поэтому, когда я выполняю сценарий из функции «Создать сценарий» MS SQL, персонаж изменился, и я его не заметил.

0 голосов
/ 27 марта 2020

Вы можете попробовать перехватить общее исключение вместо PDOException

try
{
  // ...
} catch (\Exception $e) {
  // ...
}
...