Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kesalahan saat menggunakan array_push -- Argumen pertama harus berupa array

Per komentar, $products diinisialisasi oleh file yang disertakan yang disertakan di dalam suatu fungsi. Itu mendefinisikan ruang lingkupnya ke fungsi, bukan secara global. Jadi, Anda harus menggunakan global $products; sebelum memanggil penyertaan.

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

Bagaimanapun, saya merasa sedikit lebih mudah dibaca untuk menggunakan $GLOBALS['products'] bukannya global kata kunci. Dan seperti biasa, jika memungkinkan, adalah praktik yang lebih disukai untuk meneruskan variabel ke dalam suatu fungsi daripada mengaksesnya secara global.

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

Namun dalam kasus Anda, jika CMS mendefinisikannya, Anda mungkin kehilangan fleksibilitas untuk melakukannya dengan cara itu...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sql berbeda, mendapatkan 2 kolom

  2. Mengapa jdbcTemplate.batchUpdate() Spring begitu lambat?

  3. Apakah urutan kolom penting di tabel MySQL Anda?

  4. Mysql menghitung baris menggunakan filter pada database lalu lintas tinggi

  5. JDBCExceptionReporter - Kesalahan SQL:0, SQLState:08001