Mysql
 sql >> база данни >  >> RDS >> Mysql

PHP isset() с множество параметри

Параметърът(ите) към isset() трябва да бъде препратка към променлива, а не израз (във вашия случай конкатенация); но можете да групирате няколко условия заедно по следния начин:

if (isset($_POST['search_term'], $_POST['postcode'])) {
}

Това ще върне true само ако всички аргументи към isset() са зададени и не съдържат null .

Обърнете внимание, че isset($var) и isset($var) == true имат същия ефект, така че последното е малко излишно.

Актуализиране

Втората част на вашия израз използва empty() така:

empty ($_POST['search_term'] . $_POST['postcode']) == false

Това е погрешно поради същите причини като по-горе. Всъщност нямате нужда от empty() тук, защото по това време вече бихте проверили дали променливите са зададени, така че можете да направите бърз достъп до пълния израз по следния начин:

isset($_POST['search_term'], $_POST['postcode']) && 
    $_POST['search_term'] && 
    $_POST['postcode']

Или с помощта на еквивалентен израз:

!empty($_POST['search_term']) && !empty($_POST['postcode'])

Последни мисли

Трябва да помислите за използването на filter функции за управление на входовете:

$data = filter_input_array(INPUT_POST, array(
    'search_term' => array(
        'filter' => FILTER_UNSAFE_RAW,
        'flags' => FILTER_NULL_ON_FAILURE,
    ),
    'postcode' => array(
        'filter' => FILTER_UNSAFE_RAW,
        'flags' => FILTER_NULL_ON_FAILURE,
    ),
));

if ($data === null || in_array(null, $data, true)) {
    // some fields are missing or their values didn't pass the filter
    die("You did something naughty");
}

// $data['search_term'] and $data['postcode'] contains the fields you want

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Кога да използвате дата и час

  2. Mysql - Mysql2::Грешка:Неправилна стойност на низа:

  3. Как да променя типа VARCHAR на DATETIME с помощта на ALTER в MySQL?

  4. DATETIME VS INT за съхранение на времето?

  5. Извиквания на асинхронна база данни на Node JS