assign('type', -1); $smarty->assign('ur_here', $_LANG['04_sql_query']); $smarty->display('sql.htm'); } if ($_REQUEST['act'] == 'query') { admin_priv('sql_query'); assign_sql($_POST['sql']); assign_query_info(); $smarty->assign('ur_here', $_LANG['04_sql_query']); $smarty->display('sql.htm'); } /** * * * @access public * @param * * @return void */ function assign_sql($sql) { global $db, $smarty, $_LANG; $sql = stripslashes($sql); $smarty->assign('sql', $sql); /* 解析查询项 */ $sql = str_replace("\r", '', $sql); $query_items = explode(";\n", $sql); foreach ($query_items as $key=>$value) { if (empty($value)) { unset($query_items[$key]); } } /* 如果是多条语句,拆开来执行 */ if (count($query_items) > 1) { foreach ($query_items as $key=>$value) { if ($db->query($value, 'SILENT')) { $smarty->assign('type', 1); } else { $smarty->assign('type', 0); $smarty->assign('error', $db->error()); return; } } return; //退出函数 } /* 单独一条sql语句处理 */ if (preg_match("/^(?:UPDATE|DELETE|TRUNCATE|ALTER|DROP|FLUSH|INSERT|REPLACE|SET|CREATE)\\s+/i", $sql)) { if ($db->query($sql, 'SILENT')) { $smarty->assign('type', 1); } else { $smarty->assign('type', 0); $smarty->assign('error', $db->error()); } } else { $data = $db->GetAll($sql); if ($data === false) { $smarty->assign('type', 0); $smarty->assign('error', $db->error()); } else { $result = ''; if (is_array($data) && isset($data[0]) === true) { $result = " \n "; $keys = array_keys($data[0]); for ($i = 0, $num = count($keys); $i < $num; $i++) { $result .= "\n"; } $result .= " \n"; foreach ($data AS $data1) { $result .= "\n"; foreach ($data1 AS $value) { $result .= ""; } $result .= "\n"; } $result .= "
" . $keys[$i] . "
" . $value . "
\n"; } else { $result ="

" . $_LANG['no_data'] . "

"; } $smarty->assign('type', 2); $smarty->assign('result', $result); } } } ?>