/** * ページレイアウトテーブルにデータ更新を行う. * * @param array $arrUpdData 更新データ * @return integer 更新結果 */ function lfUpdPageData($arrUpdData = array()) { $objQuery = new SC_Query(); $sql = ""; // SQL生成 $sql .= " UPDATE "; $sql .= " dtb_pagelayout "; $sql .= " SET "; $sql .= " author = ? , "; $sql .= " description = ? , "; $sql .= " keyword = ? "; $sql .= " WHERE "; $sql .= " page_id = ? "; $sql .= " "; // SQL実行 $ret = $objQuery->query($sql, $arrUpdData); return $ret; }
function lfUpdCsvOutput($csv_id, $arrData = array()) { $objQuery = new SC_Query(); // ひとまず、全部使用しないで更新する $upd_sql = "UPDATE dtb_csv SET status = 2, rank = NULL, update_date = now() WHERE csv_id = ?"; $objQuery->query($upd_sql, array($csv_id)); // 使用するものだけ、再更新する。 if (is_array($arrData)) { foreach ($arrData as $key => $val) { $upd_sql = "UPDATE dtb_csv SET status = 1, rank = ? WHERE csv_id = ? AND col = ? "; $objQuery->query($upd_sql, array($key + 1, $csv_id, $val)); } } }
/** * メーカー商品数数の登録を行う. * * @param SC_Query $objQuery SC_Query インスタンス * @return void */ public function sfCountMaker($objQuery) { //テーブル内容の削除 $objQuery->query('DELETE FROM dtb_maker_count'); //各メーカーの商品数を数えて格納 $sql = ' INSERT INTO dtb_maker_count(maker_id, product_count, create_date) '; $sql .= ' SELECT T1.maker_id, count(T2.maker_id), CURRENT_TIMESTAMP '; $sql .= ' FROM dtb_maker AS T1 LEFT JOIN dtb_products AS T2'; $sql .= ' ON T1.maker_id = T2.maker_id '; $sql .= ' WHERE T2.del_flg = 0 AND T2.status = 1 '; $sql .= ' GROUP BY T1.maker_id, T2.maker_id '; $objQuery->query($sql); }
/** * メーカー商品数数の登録を行う. * * @param SC_Query $objQuery SC_Query インスタンス * @return void */ function sfCountMaker($objQuery) { $sql = ""; //テーブル内容の削除 $objQuery->query("DELETE FROM dtb_maker_count"); //各メーカーの商品数を数えて格納 $sql = " INSERT INTO dtb_maker_count(maker_id, product_count, create_date) "; $sql .= " SELECT T1.maker_id, count(T2.maker_id), CURRENT_TIMESTAMP "; $sql .= " FROM dtb_maker AS T1 LEFT JOIN dtb_products AS T2"; $sql .= " ON T1.maker_id = T2.maker_id "; $sql .= " WHERE T2.del_flg = 0 AND T2.status = 1 "; $sql .= " GROUP BY T1.maker_id, T2.maker_id "; $objQuery->query($sql); }
/** * インデックスを作成する. * * @param string $index_name インデックス名 * @param string $table_name テーブル名 * @param string $col_name カラム名 * @param integer $length 作成するインデックスのバイト長 * @return void */ function createTableIndex($index_name, $table_name, $col_name, $length = 0) { $objQuery = new SC_Query($dsn, true, true); $objQuery->query("CREATE INDEX ? ON ? (?(?))", array($index_name, $table_name, $col_name, $length)); }
/** * ブロック位置の更新 */ function lfChangeBloc($template_code) { $objQuery = new SC_Query(); $filepath = USER_TEMPLATE_PATH . $template_code . "/sql/update_bloc.sql"; // ブロック位置更新SQLファイル有 if (file_exists($filepath)) { if ($fp = fopen($filepath, "r")) { $sql = fread($fp, filesize($filepath)); fclose($fp); } // 改行、タブを1スペースに変換 $sql = preg_replace("/[\r\n\t]/", " ", $sql); $sql_split = split(";", $sql); foreach ($sql_split as $key => $val) { if (trim($val) != "") { $objQuery->query($val); } } } }
$sqlval['top_tpl'] = "default1"; $sqlval['product_tpl'] = "default1"; $sqlval['detail_tpl'] = "default1"; $sqlval['mypage_tpl'] = "default1"; $objQuery = new SC_Query($dsn); $cnt = $objQuery->count("dtb_baseinfo"); if ($cnt > 0) { $objQuery->update("dtb_baseinfo", $sqlval); } else { $objQuery->insert("dtb_baseinfo", $sqlval); } // 管理者登録 $login_id = $objWebParam->getValue('login_id'); $login_pass = sha1($objWebParam->getValue('login_pass') . ":" . AUTH_MAGIC); $sql = "DELETE FROM dtb_member WHERE login_id = ?"; $objQuery->query($sql, array($login_id)); $sql = "INSERT INTO dtb_member (name, login_id, password, creator_id, authority, work, del_flg, rank, create_date, update_date)\n VALUES ('管理者',?,?,0,0,1,0,1, now(), now());"; $objQuery->query($sql, array($login_id, $login_pass)); global $GLOBAL_ERR; $GLOBAL_ERR = ""; $objPage = lfDispComplete($objPage); // サイト情報を送信 $req = new HTTP_Request("http://www.ec-cube.net/mall/use_site.php"); $req->setMethod(HTTP_REQUEST_METHOD_POST); $arrSendData = array(); foreach ($_POST as $key => $val) { if (ereg("^senddata_*", $key)) { $arrSendDataTmp = array(str_replace("senddata_", "", $key) => $val); $arrSendData = array_merge($arrSendData, $arrSendDataTmp); } }
/** * カテゴリ数の登録を行う. * * @param SC_Query $objQuery SC_Query インスタンス * @return void */ function sfCategory_Count($objQuery) { $sql = ""; //テーブル内容の削除 $objQuery->query("DELETE FROM dtb_category_count"); $objQuery->query("DELETE FROM dtb_category_total_count"); //各カテゴリ内の商品数を数えて格納 $sql = " INSERT INTO dtb_category_count(category_id, product_count, create_date) "; $sql .= " SELECT T1.category_id, count(T2.category_id), now() "; $sql .= " FROM dtb_category AS T1 LEFT JOIN dtb_product_categories AS T2"; $sql .= " ON T1.category_id = T2.category_id "; $sql .= " LEFT JOIN dtb_products AS T3"; $sql .= " ON T2.product_id = T3.product_id"; $sql .= " WHERE T3.del_flg = 0 AND T3.status = 1 "; $sql .= " GROUP BY T1.category_id, T2.category_id "; $objQuery->query($sql); //子カテゴリ内の商品数を集計する $arrCat = $objQuery->getAll("SELECT * FROM dtb_category"); $sql = ""; foreach ($arrCat as $key => $val) { // 子ID一覧を取得 $arrRet = $this->sfGetChildrenArray('dtb_category', 'parent_category_id', 'category_id', $val['category_id']); $line = SC_Utils_Ex::sfGetCommaList($arrRet); $sql = " INSERT INTO dtb_category_total_count(category_id, product_count, create_date) "; $sql .= " SELECT ?, SUM(product_count), now() FROM dtb_category_count "; $sql .= " WHERE category_id IN (" . $line . ")"; $objQuery->query($sql, array($val['category_id'])); } }
function lfUninstallModule() { global $objPage; $objQuery = new SC_Query(); $arrRet = $objQuery->select("module_id, extern_php, other_files, install_sql, uninstall_sql, latest_version", "dtb_module", "module_id = ?", array($_POST['module_id'])); $flg_ok = true; // 処理の成功判定 if (count($arrRet) > 0) { // モジュールを削除する $objQuery->query("UPDATE dtb_payment SET del_flg = 1 WHERE module_id = ?", array($arrRet[0]['module_id'])); $arrFiles = array(); if ($arrRet[0]['other_files'] != "") { $arrFiles = split("\\|", $arrRet[0]['other_files']); } $arrFiles[] = $arrRet[0]['extern_php']; foreach ($arrFiles as $val) { $path = MODULE_PATH . $val; // ファイルを削除する if (file_exists($path) && unlink($path)) { $objPage->update_mess .= ">> " . $path . ":削除成功<br>"; } else { $objPage->update_mess .= ">> " . $path . ":削除失敗<br>"; } } // 必要なSQL文の実行 if ($arrRet[0]['uninstall_sql'] != "") { // SQL文実行、パラーメータなし、エラー無視 $ret = $objQuery->query($arrRet[0]['uninstall_sql'], "", true); if (DB::isError($ret)) { // エラー文を取得する ereg("\\[(.*)\\]", $ret->userinfo, $arrKey); $objPage->update_mess .= ">> テーブル構成の変更に失敗しました。<br>"; $objPage->update_mess .= $arrKey[0] . "<br>"; $flg_ok = false; } else { $objPage->update_mess .= ">> テーブル構成の変更を行いました。<br>"; } } } else { sfErrorHeader(">> 対象の機能は、配布を終了しております。"); } if ($flg_ok) { // バージョン情報を削除する。 $sqlval['now_version'] = ""; $sqlval['update_date'] = "now()"; $objQuery->update("dtb_module", $sqlval, "module_id = ?", array($arrRet[0]['module_id'])); } }
function lfCreateBkupTable() { $objQuery = new SC_Query(); // テーブルの存在チェック $arrTableList = $this->lfGetTableList(); if (!in_array("dtb_bkup", $arrTableList)) { // 存在していなければ作成 $cre_sql = "\n create table dtb_bkup\n (\n bkup_name text,\n bkup_memo text,\n create_date timestamp\n );\n "; $objQuery->query($cre_sql); } }
function lfRegistNewData() { $objQuery = new SC_Query(); $objQuery->begin(); // 入力データを渡す。 $arrRet = $this->objFormParam->getHashArray(); foreach ($arrRet as $key => $val) { // 配列は登録しない if (!is_array($val)) { $sqlval[$key] = $val; } } // postgresqlとmysqlとで処理を分ける if (DB_TYPE == "pgsql") { $order_id = $objQuery->nextval("dtb_order", "order_id"); } elseif (DB_TYPE == "mysql") { $order_id = $objQuery->get_auto_increment("dtb_order"); } $sqlval['order_id'] = $order_id; $sqlval['create_date'] = "Now()"; // 注文ステータス:指定が無ければ新規受付に設定 if ($sqlval["status"] == "") { $sqlval['status'] = '1'; } // customer_id if ($sqlval["customer_id"] == "") { $sqlval['customer_id'] = '0'; } unset($sqlval['total_point']); unset($sqlval['point']); $where = "order_id = ?"; // 受注ステータスの判定 if ($sqlval['status'] == ODERSTATUS_COMMIT) { // 受注テーブルの発送済み日を更新する $sqlval['commit_date'] = "Now()"; } // 受注テーブルの登録 $objQuery->insert("dtb_order", $sqlval); $sql = ""; $sql .= " UPDATE"; $sql .= " dtb_order"; $sql .= " SET"; $sql .= " payment_method = (SELECT payment_method FROM dtb_payment WHERE payment_id = ?)"; $sql .= " ,deliv_time = (SELECT deliv_time FROM dtb_delivtime WHERE time_id = ? AND deliv_id = (SELECT deliv_id FROM dtb_payment WHERE payment_id = ? ))"; $sql .= " WHERE order_id = ?"; if ($arrRet['deliv_time_id'] == "") { $deliv_time_id = 0; } else { $deliv_time_id = $arrRet['deliv_time_id']; } $arrUpdData = array($arrRet['payment_id'], $deliv_time_id, $arrRet['payment_id'], $order_id); $objQuery->query($sql, $arrUpdData); // 受注詳細データの更新 $arrDetail = $this->objFormParam->getSwapArray(array("product_id", "product_code", "product_name", "price", "quantity", "point_rate", "classcategory_id1", "classcategory_id2", "classcategory_name1", "classcategory_name2")); $objQuery->delete("dtb_order_detail", $where, array($order_id)); $max = count($arrDetail); for ($i = 0; $i < $max; $i++) { $sqlval = array(); $sqlval['order_id'] = $order_id; $sqlval['product_id'] = $arrDetail[$i]['product_id']; $sqlval['product_code'] = $arrDetail[$i]['product_code']; $sqlval['product_name'] = $arrDetail[$i]['product_name']; $sqlval['price'] = $arrDetail[$i]['price']; $sqlval['quantity'] = $arrDetail[$i]['quantity']; $sqlval['point_rate'] = $arrDetail[$i]['point_rate']; $sqlval['classcategory_id1'] = $arrDetail[$i]['classcategory_id1']; $sqlval['classcategory_id2'] = $arrDetail[$i]['classcategory_id2']; $sqlval['classcategory_name1'] = $arrDetail[$i]['classcategory_name1']; $sqlval['classcategory_name2'] = $arrDetail[$i]['classcategory_name2']; $objQuery->insert("dtb_order_detail", $sqlval); } $objQuery->commit(); return $order_id; }
/** * 登録済みデータを削除する. * * @param integer $sql_id 削除するデータのSQL_ID * @return bool 実行結果 TRUE:成功 FALSE:失敗 */ function lfDelData($sql_id = "") { $objQuery = new SC_Query(); // DB操作オブジェクト $sql = ""; // データ取得SQL生成用 $Ret = false; // 実行結果 // sql_id が指定されている場合のみ実行 if ($sql_id != "") { // データの削除 $sql = "DELETE FROM dtb_csv_sql WHERE sql_id = ? "; // SQL実行 $ret = $objQuery->query($sql, array($sql_id)); } else { $ret = false; } // 結果を返す return $ret; }