Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Błędy podczas używania array_push -- Pierwszym argumentem powinna być tablica

Zgodnie z komentarzami, $products został zainicjowany przez dołączony plik, który został dołączony do funkcji. To określa jej zakres do funkcji, a nie globalnie. Musisz więc użyć global $products; przed wywołaniem dołączenia.

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...
}

W każdym razie uważam, że bardziej czytelne jest użycie $GLOBALS['products'] zamiast global słowo kluczowe. I jak zawsze, gdy tylko jest to możliwe, preferowaną praktyką jest przekazywanie zmiennej do funkcji zamiast uzyskiwania do niej dostępu globalnie.

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

Jednak w twoim przypadku, jeśli CMS to definiuje, możesz stracić elastyczność, aby zrobić to w ten sposób...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Optymalne zapytanie do pobrania skumulowanej sumy w MySQL

  2. Transakcja MySQL na dwóch bazach danych na różnych serwerach

  3. wstaw zapytanie za pomocą pętli foreach odbierającej Nieprzechwycony błąd:Wywołanie funkcji członkowskiej execute() on boolean

  4. mySQL ładuje dane lokalny plik wewnętrzny niepoprawny format liczb

  5. Jak uzyskać datę z zestawu wyników