- Timestamp:
- 2013/03/10 05:01:12 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/camp/camp-2_13-plugin/data/class/plugin/SC_Plugin_Installer.php
r22676 r22682 40 40 $this->arrInstallData['copy_file'] = array(); 41 41 $this->arrInstallData['copy_direcrtory'] = array(); 42 $this->arrInstallData['insert'] = array(); 43 $this->arrInstallData['update'] = array(); 42 44 $this->arrInstallData['remove_file'] = array(); 43 45 $this->arrInstallData['remove_directory'] = array(); … … 113 115 $plugin_code = $this->arrPlugin['plugin_code']; 114 116 115 $objQuery =& SC_Query::getSingletonInstance(); 116 117 117 118 // テーブル作成SQLなどを実行 118 119 $arrSql = $this->arrInstallData['sql']; 119 120 $arrErr = array(); 121 122 // SQLの検証 123 foreach ($arrSql as $sql) { 124 $this->log("verify sql: " . $sql['sql']); 125 $error_message = $this->verifySql($sql['sql'], $sql['params']); 126 if (!is_null($error_message)) { 127 $this->log("verify sql: invalid sql " . $sql['sql']); 128 $arrErr[] = $error_message; 129 } 130 } 131 132 if (count($arrErr) > 0) { 133 $this->log("verify sql: err"); 134 return $arrErr; 135 } 136 137 $objQuery =& SC_Query_Ex::getSingletonInstance(); 138 139 // SQLの実行 120 140 foreach ($arrSql as $sql) { 121 141 $this->log("exec sql: " . $sql['sql']); … … 236 256 'arrRawSqlVal' => $arrRawSqlVal) 237 257 ); 238 } 258 } 259 260 /** 261 * 262 * @param string $sql 263 * @param type $params 264 */ 265 protected function verifySql($sql, $params) { 266 // FIXME $paramsのチェックも行いたい. 267 $objQuery =& SC_Query_Ex::getSingletonInstance(); 268 269 // force runを有効にし, システムエラーを回避する 270 $objQuery->force_run = true; 271 272 // prepareでSQLを検証 273 $sth = $objQuery->prepare($sql); 274 275 if (PEAR::isError($sth)) { 276 $error_message = $sth->message . ":" . $sth->userinfo; 277 } 278 // force_runをもとに戻す. 279 $objQuery->force_run = false; 280 281 return $error_message; 282 } 239 283 }
Note: See TracChangeset
for help on using the changeset viewer.