//执行mysql_query()语句(选择数据库USE) function usequery($query){ global $ecms_config; // 优化1:对USE语句的数据库名自动添加反引号(可选,双重保障) if (stripos($query, 'USE ') === 0) { $parts = explode(' ', $query); if (count($parts) >= 2) { $dbname = trim($parts[1]); // 若数据库名未被反引号包裹,则添加 if ($dbname[0] !== '`' && $dbname[strlen($dbname)-1] !== '`') { $query = "USE `" . $dbname . "`"; } } }
// 执行SQL语句 $this->sql = mysqli_query($GLOBALS['link'], $query) or die( $ecms_config['db']['showerror'] == 1 ? // 优化2:错误提示中显示完整的错误信息和SQL语句,方便调试 'MySQL错误:' . mysqli_error($GLOBALS['link']) . '<br>执行的SQL:' . htmlspecialchars($query) : 'DbError' ); // 同步执行从库 if ($GLOBALS['linkrd']) { mysqli_query($GLOBALS['linkrd'], $query); } return $this->sql; }
|