【PHP】【Zend Framework】Zend Frameworkを使って、データを追加・更新・削除(INSERT/UPDATE/DELETE)する

サンプル1

http://blogs.yahoo.co.jp/dk521123/24302172.html
のデータを使う。

フォルダ構成

「*」は、フォルダの意味で、付いてなければ、ファイルを意味する
 * アプリケーションのルートディレクトリ
 |
 +- * configs
 |  +- db_info.ini ( ※1参照 )
 |
 +- Insert1.php (データ追加用)
 +- Insert2.php (データ追加用・別の書き方)
 +- Update.php (データ更新用)
 +- Delete.php (データ削除用)
※1:「db_info.ini」については、以下を参照

DB用メソッド構文

 * データ追加:insert($table_name, $value_array)
 * データ更新:update($table_name, $value_array, $condition)
 * データ削除:delete($table_name, $condition)

Insert1.php(データ追加用)

<html>
<body>
<?php
require_once 'Zend/Db.php';
require_once 'Zend/Config/Ini.php';

$config = new Zend_Config_Ini('./configs/db_info.ini', 'hello_db');
$db = Zend_Db::factory($config->db);

$sql = "INSERT INTO message_board VALUES(?, ?)";
$statement = new Zend_Db_Statement_Pdo($db, $sql);

$result = $statement->execute(array(4, 'Good night...'));

echo "$result" . " records are added.<br/>";
?>
</body>
</html>

Insert2.php(データ追加用・別の書き方)

<html>
<body>
<?php
require_once 'Zend/Db.php';
require_once 'Zend/Config/Ini.php';

$config = new Zend_Config_Ini('./configs/db_info.ini', 'hello_db');
$db = Zend_Db::factory($config->db);

$data = array('id' => "5", 'message' => "Good morning!");
$result = $db->insert('message_board', $data);

echo "$result" . " records were updated.<br/>";
?>
</body>
</html>

Update.php (データ更新用)

<html>
<body>
<?php
require_once 'Zend/Db.php';
require_once 'Zend/Config/Ini.php';

$config = new Zend_Config_Ini('./configs/db_info.ini', 'hello_db');
$db = Zend_Db::factory($config->db);

$data = array('message' => "Good afternoon!");
$result = $db->update('message_board', $data, 'id = 1');

echo "$result" . " records were updated.<br/>";
?>
</body>
</html>

Delete.php (データ削除用)

<html>
<body>
<?php
require_once 'Zend/Db.php';
require_once 'Zend/Config/Ini.php';

$config = new Zend_Config_Ini('./configs/db_info.ini', 'hello_db');
$db = Zend_Db::factory($config->db);

$result = $db->delete('message_board', 'id = 0');

echo "$result" . " records were deleted.<br/>";
?>
</body>
</html>

参考資料

http://codezine.jp/article/detail/2449?p=3

構文

更新(Update)

インクリメントするには

* Zend_Db_Exprを使用する
http://soudan1.biglobe.ne.jp/qa6443006.html
$data = array (
	'number1' => new Zend_Db_Expr('number1 + 1'),
);
$result = $db->update('sampleTable', $data);

参考資料

http://framework.zend.com/manual/ja/zend.db.select.html

関連BLOG

データの参照(SELECT)

http://blogs.yahoo.co.jp/dk521123/25061365.html