質問編集履歴

1

pecchan

pecchan score 268

2016/04/28 14:24  投稿

【cakePHP】query($sql,$params)の$paramsが配列の時どう渡せば良いですか?
【cakePHP】プレースホルダ+パラメータが配列時
cakePHPでは、プレースホルダを使い、
以下のようにパラメータを渡せますが、
```PHP
$user_id = '123';
$sql = 'SELECT user_name FROM users WHERE user_id = ?';
$params = array(user_id);
$result = $this->query($sql, $params, false);
```
このパラメータを以下のように複数=配列で渡したいのです。
例えば「ON DUPLICATE KEY UPDATE」を複数渡すなどの時です。
```PHP
$sql = 'INSERT INTO users (user_id, user_name) VALUES (?,?),(?,?) ON DUPLICATE KEY UPDATE user_name=VALUES(user_name)';
```
この時の$paramsにはどんな形でデータを詰めれば良いのでしょうか?
以下のように詰めて渡すとエラー(Array to string conversion)になりました。
array(2) {
[0]=>
array(2) {
[0]=>
int(111)
[1]=>
string(1) "山田"
}
[1]=>
array(2) {
[0]=>
int(112)
[1]=>
string(1) "斎藤"
}
}
ご存知のかた居ましたら教えていただけますでしょうか?
宜しくお願い致します。
  • CakePHP

    2678 questions

    CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

  • SQL

    3466 questions

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る