может кто-нибудь помочь исправить ошибку синтаксиса mysql - PullRequest
0 голосов
/ 03 марта 2020

друзья мой поисковый запрос ниже я wi sh, чтобы показать результаты, чье соединение "имя столбца"! = '0' мне понравилось (НЕ соединение = '0' ИЛИ ​​соединение НУЛЬ)

, но почему-то я получаю следующую ошибку

(!) Неустранимая ошибка: необработанное исключение «PDOException» с сообщением «SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1064 У вас есть ошибка в вашем SQL синтаксис; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с '(НЕ соединение = 0; ИЛИ СОЕДИНЕНИЕ НЕДОСТАТОЧНО) ЗАКАЗАТЬ ПО ДАТЕ DES C LIMIT? СМЕЩЕНИЕ? в строке 1 '

вот мой код

foreach($search_fields as $field)
{
    if(isset($_GET[$field]) && $_GET[$field] != 'All') 
    {
        $and_clause[] = "`$field` = :$field";
        $params[] = array(":$field",$_GET[$field],PDO::PARAM_STR);
    }
}

$where_clause = '';
if(!empty($and_clause))
{
    $where_clause = "WHERE (NOT connection = '0' OR connection IS NULL) " . implode(' AND ', $and_clause);
}

$query = "SELECT COUNT(*) FROM table $where_clause";

if(empty($params))
{
    $stmt = $db->query($query);
}
else
{
    $stmt = $db->prepare($query);
    foreach($params as $param)
    {
        $stmt->bindValue($param[0],$param[1],$param[2]);
    }
    $stmt->execute();
}

$total = $stmt->fetchColumn();

$pages = ceil($total / $records_per_page);

$page = min($pages, filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT, array(
'options' => array(
'default'   => 1,
'min_range' => 1,
),
)));

$offset = ($page - 1)  * $records_per_page; 

$params[] = array(':records_per_page',$records_per_page, PDO::PARAM_INT);
$params[] = array(':offset',$offset, PDO::PARAM_INT);

$query = "SELECT * FROM table $where_clause (NOT connection = '0' OR connection IS NULL)  ORDER BY date DESC LIMIT :records_per_page OFFSET :offset";

1 Ответ

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

Это была строка: D

 $and_clause[] = "`$field` = :$field AND connection !='0'";

проблема решена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...