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

Bagaimana cara mengulang hasil mysql dalam kerangka kerja bebas lemak?

Kueri DB

Ada 3 varian untuk mengulang hasil db:

Tanpa pembuat peta:

Jalankan kueri SQL dan ambil hasil yang ditetapkan sebagai larik larik asosiatif:

$users = $db->exec('SELECT * FROM users');
foreach($users as $user)
  echo $user['name'];//associative array

Dengan mapper->muat:

Ambil baris pembuat peta satu per satu (metode Anda):

$user=new \DB\SQL\Mapper($db,'users');
$user->load('');
while(!$user->dry()) {
  echo $user->name;//db mapper
  $user->next();
}

Dengan mapper->temukan:

Ambil hasil yang ditetapkan sebagai larik pembuat peta:

$mapper=new \DB\SQL\Mapper($db,'users');
$users=$mapper->find('');
foreach($users as $user)
  echo $user->name;//db mapper

Penanganan kesalahan DB

\DB\SQL adalah subkelas dari PDO sehingga dapat membuang pengecualian PDO yang dapat ditangkap. Karena ini dinonaktifkan secara default, Anda harus mengaktifkannya terlebih dahulu. Ini dapat dilakukan dengan 2 cara berbeda:

  • pada waktu instantiasi, untuk semua transaksi:

    $db = new \DB\SQL($dsn, $user, $pwd, array( \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION ));

  • nanti dalam kode, per transaksi:

    $db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);

Setelah pengecualian PDO diaktifkan, tangkap saja sebagai pengecualian lain:

try {
  $db->exec('INSERT INTO mytable(id) VALUES(?)','duplicate_id');
} catch(\PDOException $e) {
  $err=$e->errorInfo;
  //$err[0] contains the error code (23000)
  //$err[2] contains the driver specific error message (PRIMARY KEY must be unique)
}

Ini juga berfungsi dengan pembuat peta DB, karena mereka mengandalkan kelas DB\SQL yang sama:

$db=new \DB\SQL($dsn,$user,$pwd,array(\PDO::ATTR_ERRMODE=>\PDO::ERRMODE_EXCEPTION));
$mytable=new \DB\SQL\Mapper($db,'mytable');
try {
  $mytable->id='duplicate_id';
  $mytable->save();//this will throw an exception
} catch(\PDOException $e) {
  $err=$e->errorInfo;
  echo $err[2];//PRIMARY KEY must be unique
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara menampilkan gambar (tipe bolb) di halaman jsp dari mySql DB di Struts 2 menggunakan Hibernate

  2. Cara mengambil catatan kecocokan di beberapa tabel di MySQL

  3. Dapatkan hasil dari mysql berdasarkan garis bujur

  4. Hitungan baris dalam Doktrin 2

  5. Kata sandi default mysql di server ubuntu 16.04