Example #1
0
 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());
     }
 }
Example #4
0
 /**
  * 获取数据库连接对象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;
     }
 }
Example #5
0
<?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 {
Example #6
0
<?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 {
Example #7
0
<?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'];
Example #8
0
 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エラー(プロジェクト名変更に失敗しました。)");
}
Example #10
0
 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));
Example #15
0
<?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();
Example #16
0
 /**
  * 单例模式
  *
  * 用于本类的单例模式(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>
Example #18
0
<?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;
}