Rollback of Zend/Db/Sql
このバージョンに戻す
[Rev:59KOeanj4k](最終更新:11年前)
[Rev:59KOeanj4k](最終更新:11年前)
基本的な利用方法
$sql = new Zend\Db\Sql\Sql($adapter);
$insert=$sql->insert();
$insert->into("test");
// columnsを先に書くと何故か消える
$insert->values(array("1","hoge"));
$insert->columns(array("id", "name"));
echo $sql->getSqlStringForSqlObject($insert);
// →INSERT INTO `test` (`id`, `name`) VALUES ('1', 'hoge')
Insert
$sqlクラスのinsertメソッドから呼び出される。
引数はテーブル名
/* テーブル名の指定 */
//テーブル名を引数に指定する
$tableName = "test";
$insert=$sql->insert($tableName);
//intoメソッドが優先される
$insert->into($tableName);
/* カラム名の指定 */
// Zend 2.3現在、columnsメソッドより後にvaluesメソッドを呼び出し、かつ第二引数にself::VALUES_SETを設定するか第二引数を省略した場合、columns設定値が消失する
$array = array("id", "name", "value");
$insert->columns($array);
/* values値の指定 */
// おそらく連想配列で渡すのが本来の使い方。columnsで指定した内容は無視される
$values = array("id"=>"1", "name"=>"test", "value"=>"testvalue");
$insert->values($values);
/* おまけ */
var_dump($insert->getRawState("table"));
// →string(4) "test"
var_dump($insert->getRawState("columns"));
// →array(3) { [0]=> string(2) "id" [1]=> string(4) "name" [2]=> string(5) "value" }
var_dump($insert->getRawState("values"));
// →array(3) { [0]=> string(1) "1" [1]=> string(4) "test" [2]=> string(9) "testvalue" }
var_dump($insert->getRawState());
// →array(3) { ["table"]=> string(4) "test" ["columns"]=> array(3) { [0]=> string(2) "id" [1]=> string(4) "name" [2]=> string(5) "value" } ["values"]=> array(3) { [0]=> string(1) "1" [1]=> string(4) "test" [2]=> string(9) "testvalue" }