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

memperluas kelas PDO

$dsn adalah nama sumber data. Ini menangani nama host Anda untuk Anda. Anda menggunakannya seperti ini:

$dsn = 'mysql:dbname=YOUR_DB_NAME;host=YOUR_HOSTNAME'

Dengan baris $this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); Anda telah menetapkan pengecualian untuk dimunculkan ketika kesalahan terjadi (yang saya suka), jadi di kelas tambahan Anda, Anda dapat menangani kesalahan dalam penangan pengecualian. Jika Anda memiliki metode yang disebut getAssoc di kelas PDO yang diperluas, maka itu akan terlihat seperti ini:

/// Get an associative array of results for the sql.
public function getAssoc($sql, $params=array())
{
   try
   {
      $stmt = $this->prepare($sql);
      $params = is_array($params) ? $params : array($params);
      $stmt->execute($params);

      return $stmt->fetchAll(PDO::FETCH_ASSOC);
   }
   catch (Exception $e)
   {
      // Echo the error or Re-throw it to catch it higher up where you have more
      // information on where it occurred in your program.
      // e.g echo 'Error: ' . $e->getMessage(); 

      throw new Exception(
            __METHOD__ . 'Exception Raised for sql: ' . var_export($sql, true) .
            ' Params: ' . var_export($params, true) .
            ' Error_Info: ' . var_export($this->errorInfo(), true),
            0,
            $e);
   }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Peringatan:mysql_num_rows() mengharapkan parameter 1 menjadi sumber daya, diberikan boolean

  2. Jenis MySQL apa yang paling cocok untuk kolom harga?

  3. Pertanyaan sensitivitas kasus varchar unik SQL

  4. Amazon EC2, mysql mulai membatalkan karena InnoDB:mmap (x byte) gagal; kesalahan 12

  5. Buat Pemicu untuk menghapus baris yang berusia>90 hari