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

Грешки при използване на array_push -- Първият аргумент трябва да е масив

Според коментарите, $products беше инициализирано от включен файл, който беше включен във функция. Това определя неговия обхват за функцията, а не глобално. Така че ще трябва да използвате global $products; преди да извикате включването.

function func_that_defined_products() {
  global $products;
  include('file_that_defines_products.php');
}

// Now when called globally later, it will be at the correct scope.


function foo($bar) 
{
    global $products; 
    $query = 'SELECT p_name FROM 0_products WHERE p_category IN (' . $bar . ')';
    // etc...
}

Във всеки случай намирам за малко по-четливо да използвам $GLOBALS['products'] вместо global ключова дума. И както винаги, където е възможно, предпочитана практика е променливата да се предава във функция, вместо да се осъществява глобален достъп до нея.

// If you can, do it this way
function foo($bar, $products) {
  // $products was a param, and so global is unnecessary
}

Във вашия случай обаче, ако CMS го дефинира, може да загубите гъвкавостта да го правите по този начин...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. грешка при стартиране на apache след инсталиране на xampp

  2. MySQL 5.6 - таблицата се заключва дори когато се използва ALGORITHM=inplace

  3. Актуализирайте и изберете в една заявка

  4. Нещо не е наред с Hibernate DB Connection pooler c3p0

  5. Искам да конвертирам MySQL заявка в PDO?