public static function getInstance() { if (!self::$_instance instanceof DbPdo) { self::$_instance = new self(); } return self::$_instance; }
/** * DB接続 */ public static function connect() { // DBに未接続であればDBに接続する if (!self::$db) { self::$db = new self(); // DB関連の処理失敗時は例外を投げるように設定 self::$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } return self::$db; }
/** * Der Konstruktor erzeugt eine neue Datenbankverbindung. Dies tut er nur * einmal, denn das DB-Handle wird in einem statischen Attribut gespeichert. */ public function __construct() { $this->_checkRequirements(); $dsn = 'mysql:dbname=' . DB_NAME . ';host=' . DB_SERVER . ';charset=UTF8'; try { self::$dbHandle = new PDO($dsn, DB_USER, DB_PASSWORD); self::$errors = array(); $this->_checkDbConnection(); } catch (PDOException $e) { $this->logmessage('Connection failed: ' . $e->getMessage()); } }
/** * 获取数据库连接对象PDO */ public static function connect() { if (is_null(self::$pdo_connect)) { try { $dsn = "mysql:host=" . C('DB_HOST') . ";dbname=" . C('DB_NAME'); $pdo = new PDO($dsn, C('DB_USER'), C('DB_PWD'), array(PDO::ATTR_PERSISTENT => true)); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); return self::$pdo_connect = $pdo; } catch (PDOException $e) { die("连接数库失败:" . $e->getMessage()); } } else { return self::$pdo_connect; } }
<?php //-----------------------------------------------define require_once '../conf/config.php'; require_once './class/utility.php'; require_once './class/db.php'; require_once './class/sql.php'; require_once './class/log.php'; require_once 'Smarty.class.php'; $utl = new Utility(); $db = new DbPdo(); $smarty = new Smarty(); //-----------------------------------------------session session_name(SESSION_NAME); session_start(); //-----------------------------------------------login check if (!isset($_SESSION['loginInfo']) || isset($_SESSION['loginInfo']) && empty($_SESSION['loginInfo'])) { header('Location: ' . SITE_URL . 'login.php'); } //-----------------------------------------------valiables $error = array(); // エラーメッセージ格納用 //-----------------------------------------------logic if ($_SERVER['REQUEST_METHOD'] != "POST") { $projectId = $_GET['project_id']; // 対象プロジェクト取得 $selectParams = array(array(':project_id', $projectId, PDO::PARAM_INT)); $ret = $db->executeSql($targetProjectSelect, $selectParams); if ($ret) { $targetProject = $db->fetchAllDatabase(); } else {
<?php //-----------------------------------------------define require_once '../conf/config.php'; require_once './class/utility.php'; require_once './class/db.php'; require_once './class/sql.php'; require_once './class/log.php'; require_once 'Smarty.class.php'; $utl = new Utility(); $db = new DbPdo(); $smarty = new Smarty(); //-----------------------------------------------session session_name(SESSION_NAME); session_start(); //-----------------------------------------------login check if (isset($_SESSION['loginInfo']) && !empty($_SESSION['loginInfo'])) { header('Location: ' . SITE_URL); } //-----------------------------------------------valiables $error = array(); // エラーメッセージ格納用 //-----------------------------------------------logic if ($_SERVER['REQUEST_METHOD'] != 'POST') { if (isset($_COOKIE['loginId'])) { $userId = $_COOKIE['loginId']; $userPw = $_COOKIE['loginPw']; $kiokuFlag = 1; } } else { $userId = $_POST['frmUserId'];
protected function _getDbh() { return DbPdo::getInstance()->getConn(); }
<?php //-----------------------------------------------define require_once '../conf/config.php'; require_once './class/utility.php'; require_once './class/db.php'; require_once './class/sql.php'; require_once './class/log.php'; $utl = new Utility(); $db = new DbPdo(); //-----------------------------------------------session session_name(SESSION_NAME); session_start(); //-----------------------------------------------login check if (!isset($_SESSION['loginInfo']) || isset($_SESSION['loginInfo']) && empty($_SESSION['loginInfo'])) { header('Location: ' . SITE_URL . 'login.php'); } //-----------------------------------------------valiables $projectId = (int) $_POST['projectId']; $projectMei = $_POST['projectMei']; //-----------------------------------------------logic // プロジェクトstatus変更 $db->beginTransaction(); $updateParams = array(array(':project_id', $projectId, PDO::PARAM_INT), array(':project_mei', $projectMei, PDO::PARAM_STR)); $ret = $db->executeSql($projectMeiUpdate, $updateParams); if ($ret) { $db->commit(); } else { $db->rollback(); ErrorLog::message("DBエラー(プロジェクト名変更に失敗しました。)"); }
public function close() { if (is_object($this->link)) { $this->link = NULL; self::$isConnect = NULL; } }
public function InsUser($mailAddress, $name, $name_kana, $password, $hint, $admin_flg) { $sql = "INSERT INTO login_users(address, name, name_kana, password_tmp, password, password_new, hint, admin_flg, creater, created, updater) VALUES ('" . $mailAddress . "', '" . $name . "', '" . $name_kana . "', '" . $password . "', '" . $password . "', '" . $password . "', '" . $hint . "', '" . $admin_flg . "', 1, now(), 1)"; $result = DbPdo::InsUpdDelPdo($sql); return $result; }
<?php //-----------------------------------------------define require_once '../conf/config.php'; require_once './class/utility.php'; require_once './class/db.php'; require_once './class/sql.php'; require_once './class/log.php'; $utl = new Utility(); $db = new DbPdo(); //-----------------------------------------------session session_name(SESSION_NAME); session_start(); //-----------------------------------------------login check if (!isset($_SESSION['loginInfo']) || isset($_SESSION['loginInfo']) && empty($_SESSION['loginInfo'])) { header('Location: ' . SITE_URL . 'login.php'); } //-----------------------------------------------valiables $taskId = (int) $_POST['taskId']; $projectId = (int) $_POST['projectId']; //-----------------------------------------------logic // タスク削除 $db->beginTransaction(); $deleteParams = array(array(':task_id', $taskId, PDO::PARAM_INT), array(':project_id', $projectId, PDO::PARAM_INT)); $ret = $db->executeSql($taskDelete, $deleteParams); if ($ret) { $db->commit(); } else { $db->rollback(); ErrorLog::message("DBエラー(タスク削除に失敗しました。)"); }
<?php //-----------------------------------------------define require_once '../conf/config.php'; require_once './class/utility.php'; require_once './class/db.php'; require_once './class/sql.php'; require_once './class/log.php'; $utl = new Utility(); $db = new DbPdo(); //-----------------------------------------------session session_name(SESSION_NAME); session_start(); //-----------------------------------------------login check if (!isset($_SESSION['loginInfo']) || isset($_SESSION['loginInfo']) && empty($_SESSION['loginInfo'])) { header('Location: ' . SITE_URL . 'login.php'); } //-----------------------------------------------valiables $status = $_POST['status']; $taskId = $_POST['taskId']; $projectId = $_POST['projectId']; //-----------------------------------------------logic $db->beginTransaction(); $updateParams = array(array(':status', $status, PDO::PARAM_STR), array(':task_id', $taskId, PDO::PARAM_INT), array(':project_id', $projectId, PDO::PARAM_INT)); $ret = $db->executeSql($taskStatusUpdate, $updateParams); if ($ret) { $db->commit(); } else { $db->rollback(); ErrorLog::message("DBエラー(タスク並び順変更に失敗しました。)"); }
<?php //-----------------------------------------------define require_once '../conf/config.php'; require_once './class/utility.php'; require_once './class/db.php'; require_once './class/sql.php'; require_once './class/log.php'; $utl = new Utility(); $db = new DbPdo(); //-----------------------------------------------session session_name(SESSION_NAME); session_start(); //-----------------------------------------------login check if (!isset($_SESSION['loginInfo']) || isset($_SESSION['loginInfo']) && empty($_SESSION['loginInfo'])) { header('Location: ' . SITE_URL . 'login.php'); } //-----------------------------------------------valiables $projectMei = $_POST['projectMei']; //-----------------------------------------------logic // プロジェクトの並び順の最後の値を取得 $ret = $db->executeSql($projectMaxSeqSelect); if ($ret) { $projectMaxSeq = $db->fetchAllDatabase(); if ($projectMaxSeq[0]['maxSeq'] != NULL) { $seq = $projectMaxSeq[0]['maxSeq']; } else { $seq = 0; } $db->beginTransaction(); $insertParams = array(array(':project_mei', $projectMei, PDO::PARAM_STR), array(':seq', $seq, PDO::PARAM_INT));
<?php //-----------------------------------------------define require_once '../conf/config.php'; require_once './class/utility.php'; require_once './class/db.php'; require_once './class/sql.php'; require_once './class/log.php'; require_once 'Smarty.class.php'; $utl = new Utility(); $db = new DbPdo(); $smarty = new Smarty(); //-----------------------------------------------session session_name(SESSION_NAME); session_start(); //-----------------------------------------------login check if (!isset($_SESSION['loginInfo']) || isset($_SESSION['loginInfo']) && empty($_SESSION['loginInfo'])) { header('Location: ' . SITE_URL . 'login.php'); } //-----------------------------------------------valiables $error = array(); // エラーメッセージ格納用 //-----------------------------------------------logic if ($_SERVER['REQUEST_METHOD'] != "POST") { $taskId = $_GET['task_id']; $projectId = $_GET['project_id']; // 変更対象タスク取得 $selectParams = array(array(':task_id', $taskId, PDO::PARAM_INT), array(':project_id', $projectId, PDO::PARAM_INT)); $ret = $db->executeSql($editTaskSelect, $selectParams); if ($ret) { $editTask = $db->fetchAllDatabase();
/** * 单例模式 * * 用于本类的单例模式(singleton)实例化 * * @access public * * @param array $params 数据库连接参数,如数据库服务器名,用户名,密码等 * * @return object */ public static function getInstance($params = array()) { if (!self::$_instance) { self::$_instance = new self($params); } return self::$_instance; }
$categoryID = filter_input(INPUT_GET, "categoryID"); // スレッド新規作成 $sql = "INSERT INTO threads(category_id, content, creater, created, updater) VALUES(" . "'" . $categoryID . "' , '" . $content . "' , '" . $userID . "' , now(), '" . $userID . "')"; $result = DbPdo::InsUpdDelPdo($sql); if (!$result) { exit('データを登録できませんでした。'); } // スレッド作成成功時、スレッドが紐づくカテゴリのスレッド数を取得 $sql_chk_category = "SELECT * FROM categories WHERE id = '" . $categoryID . "' AND del_flg = 0"; $result_chk_category = DbPdo::SelectPdo($sql_chk_category); if (!$result_chk_category) { exit('カテゴリ情報を取得できませんでした。'); } $cnt_comment = $result_chk_category['cnt_comment']; $cnt_comment++; // スレッド作成成功時、スレッドが紐づくカテゴリを更新 $sql_upd_category = "UPDATE categories SET cnt_comment = '" . $cnt_comment . "', updater = '" . $userID . "' WHERE id = '" . $categoryID . "'"; $result_upd_category = DbPdo::InsUpdDelPdo($sql_upd_category); if (!$result_upd_category) { exit('カテゴリを更新できませんでした。'); } ?> <p>登録が完了しました。<br /><a href="../view/dispThreads.php?userID=<?php echo $userID; ?> &categoryID=<?php echo $categoryID; ?> ">戻る</a></p> </body> </html>
<?php //-----------------------------------------------define require_once '../conf/config.php'; require_once './class/utility.php'; require_once './class/db.php'; require_once './class/sql.php'; require_once './class/log.php'; require_once 'Smarty.class.php'; $utl = new Utility(); $db = new DbPdo(); $smarty = new Smarty(); //-----------------------------------------------session session_name(SESSION_NAME); session_start(); //-----------------------------------------------login check if (!isset($_SESSION['loginInfo']) || isset($_SESSION['loginInfo']) && empty($_SESSION['loginInfo'])) { header('Location: ' . SITE_URL . 'login.php'); } //-----------------------------------------------valiables $error = array(); // エラーメッセージ格納用 //-----------------------------------------------logic // プロジェクト一覧取得 $ret = $db->executeSql($projectSelect); if ($ret) { $projectList = $db->fetchAllDatabase(); } else { $error[] = 'DBエラー(プロジェクト一覧の取得に失敗しました。)'; ErrorLog::message("DBエラー(プロジェクト一覧の取得に失敗しました。)"); }
/** * Diese statische Methode bestimmt, in welchem Newsletter der uebergebene * Newsletter-Entry ist. * @param int $entry_id die ID des Newsletter-Eintrags * @return int die ID des Newsletters oder <i>null</i> */ public static function get_newsletter_id_for_entry($entry_id) { $rueckgabe = null; $db = new DbPdo(); $sql = "SELECT newsletterContId FROM " . PREFIX . "newsletterEntries WHERE id=:entry_id;"; $erg = $db->prepare_and_execute($sql, array("entry_id" => $entry_id)); if (is_array($erg) && count($erg) == 1) { $rueckgabe = $erg[0]['newsletterContId']; } return $rueckgabe; }
<div style="height: 600px;"> <!-- 各スレッド一覧表示 --> <?php // 選択したカテゴリに紐づくスレッドの件数取得 $sql_all = "SELECT * FROM threads WHERE category_id = '" . $categoryID . "' AND del_flg = 0"; $cntThreads = DbPdo::CountPdo($sql_all); if ($cntThreads != 0) { // 選択したカテゴリに紐づくスレッドが存在する場合 // スレッド画面表示用 $sql = $sql_all; // ページャ条件を追加 if (isset($dispLimit)) { $offset = $dispLimit * ($dispPage - 1); $sql = $sql . " LIMIT " . $dispLimit . " OFFSET " . $offset; } $result = DbPdo::SelectPdo($sql); if (!$result) { exit('データを取得できませんでした。'); } // 表示上限ページ数 $max_page = ceil($cntThreads / $dispLimit); // 表示スレッド数 if ($cntThreads < $dispLimit) { $dispLimit = $cntThreads; } } ?> <!-- 上記で配列に格納した値を画面用に取り出す --> <?php for ($i = 0; $i < $dispLimit; $i++) {
<html> <head> <meta charset="utf-8"> <title></title> </head> <body> <?php // DB接続クラス読み込み require_once "../model/DbPdo.php"; // スレッド編集画面から変数取得 $content = filter_input(INPUT_GET, "content"); $threadID = filter_input(INPUT_GET, "threadID"); $categoryID = filter_input(INPUT_GET, "categoryID"); // スレッド修正 $sql = "UPDATE threads SET content = '" . $content . "' WHERE id = '" . $threadID . "' AND del_flg = 0"; $result = DbPdo::InsUpdDelPdo($sql); if (!$result) { exit('データを更新できませんでした。'); } ?> <!-- スレッド表示画面に遷移 --> <div>スレッドを修正できました。</div> <br /> <div> <a href='../view/dispThreads.php?categoryID=<?php echo $categoryID; ?> '>スレッド表示画面へ</a> </div> </body> </html>
public static function getDefaultUserGroupForNewUsers() { $db = new DbPdo(); $sql = "SELECT * FROM " . PREFIX . "newsletterGroups WHERE specialGroup=?;"; $result = $db->prepare_and_execute($sql, array(self::NEWSLETTER_GROUP_TYPE_NEW_USERS)); if (isset($result[0]['id'])) { return $result[0]['id']; } return false; }
/** * Hilfsfunktion zum Auslesen aller noch "unerledigten" Updates * @param string $update_dir absoluter Pfad zum Updates-Verzeichnis * @param DbPdo $db eine offene Datenbankverbindung * @return array list of filenames */ function get_updates_to_do($update_dir, $db) { $filenames = array(); // get all available updates from updates directory $update_dir_handle = opendir($update_dir); if ($update_dir_handle) { $filenames['update_files'] = array(); while ($update_file = readdir($update_dir_handle)) { if ($update_file != "update.css" && !is_dir($update_file) && $update_file[0] != ".") { $filenames['update_files'][] = $update_file; } } } unset($update_file); closedir($update_dir_handle); // set defaults for backwards compatibility $filenames['migrations_done'] = array(); $filenames['updates_to_do'] = $filenames['update_files']; if ($db->table_exists("migrations")) { $sql = "SELECT * FROM " . PREFIX . "migrations"; $result = $db->prepare_and_execute($sql); $filenames['migrations_done'] = array(); foreach ($result as $migration_done) { $filenames['migrations_done'][] = $migration_done['filename']; } $filenames['updates_to_do'] = array_diff($filenames['update_files'], $filenames['migrations_done']); } sort($filenames['updates_to_do']); sort($filenames['update_files']); sort($filenames['migrations_done']); return $filenames; }