CS-Cartのデータベースからデータを取得するAPIを紹介する。
array db_get_array(string $query)
戻り値の形式は連想配列の配列。
例
$users = db_get_array('SELECT user_id, firstname, lastname FROM ?:users');
結果
array (
0 =>
array (
'user_id' => '1',
'firstname' => 'John',
'lastname' => 'Doe',
),
1 =>
array (
'user_id' => '5',
'firstname' => 'Vendor',
'lastname' => 'Vendor',
),
)
array db_get_hash_array(string $query, string $field)
特定のフィールドを連想配列のキーにして返す。
例
$users = db_get_hash_array('SELECT user_id, firstname, lastname FROM ?:users', 'user_id');
キーがuser_idと同じことに注目。
結果
array (
1 =>
array (
'user_id' => '1',
'firstname' => 'John',
'lastname' => 'Doe',
),
5 =>
array (
'user_id' => '5',
'firstname' => 'Vendor',
'lastname' => 'Vendor',
),
)
array db_get_row(string $query)
一行だけ取得する。LIMIT 1を自動的につけるわけではないので、パフォーマンスを得たい場合はSQLにLIMIT 1も明示する必要あり。
例
$user = db_get_row('SELECT user_id, firstname, lastname FROM ?:users');
結果
array (
'user_id' => '1',
'firstname' => 'John',
'lastname' => 'Doe',
)
mixed db_get_field(string $query)
最初の行の最初のカラムの値を返す。
例
$userId = db_get_field('SELECT user_id, firstname, lastname FROM ?:users');
結果
'1'
array db_get_fields(string $query)
最初のカラムをすべて返す。
例
$userIds = db_get_fields('SELECT user_id, firstname, lastname FROM ?:users');
結果
array (
0 => '1',
1 => '5',
)
array db_get_hash_single_array(string $query, array $params)
第二引数で渡したKey-valueのタプルで連想配列を作って返す。
例
$firstnames = db_get_hash_single_array('SELECT user_id, firstname, lastname FROM ?:users', ['user_id', 'firstname']);
結果
array (
1 => 'John',
5 => 'Vendor',
)