PHPプログラムに関する各種メモ書き

CodeIgniter の DB操作

● SQL直接実行

$sql = 'DROP TABLE IF EXISTS my_table';
$query = $this->db->query($sql);
echo $query->result_array();

● DBへの操作実行後に実行したSQL文を取得する

$last_sql = $this->db->last_query();
echo $last_sql;

● LIKE文

$like = array( 'title_name' => 'mail' );
$this->db->like($like);

$like = array( 'content_name' => 'mail' );
$this->db->or_like($like);

生成されるSQL

WHERE "title_name" LIKE '%mail%' ESCAPE '!'
OR  "content_name" LIKE '%mail%' ESCAPE '!'

● LIKE文(SQL文を記述)

$v = '%%%';
$v = $this->db->escape_like_str($v);
$where = "(title_name like '%{$v}%' OR content_name like '%{$v}%' )";
$this->db->where($where);

生成されるSQL

WHERE ("title_name" like '%!%!%!%%' OR "content_name" like '%!%!%!%%' )

● ORDER BY

$this->db->order_by('title DESC, name ASC');

● データベースの設定情報にアクセスする

$this->db->hostname
$this->db->username
$this->db->password
$this->db->database

● いま接続しているデータベースのテーブル数を取得する( MySQL )

$sql = "select count(*) AS COUNT from `information_schema`.`tables` where `table_schema` = '" . $this->db->database . "'";
$query = $this->db->query($sql);
$hash = $query->result_array()[0];

関連エントリー

No.1077
03/14 11:26

edit

CodeIgniter