执行let page = body.pageNum; let size = body.pageSize; let sql = """ select * from grid_table where (name like '%${body.name}%' or comment like '%${body.comment}%' or addtime = #{body.addtime} ) -- <if test="body.search != null and body.search!=''"> and (name like '%${body.name}%' or comment like '%${body.comment}%' or addtime = #{body.addtime} )</if> """; db.use("fast_admin").getSql(sql) return kits.toZx(db.use("fast_admin").page(sql));报错:"系统内部出现错误|PreparedStatementCallback; bad SQL grammar [select count(1) from (select * from grid_table where (name like '%goku_page%' or comment like '%111%' or addtime = ? )\n --) count_]; nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') count_' at line 2 at Row:9~9,Col:39~47\n\nreturn kits.toZx(db.use(\"fast_admin\").page(sql));\n ^^^^^^^^^ ",
时间: 2024-03-27 09:40:38 浏览: 51
根据错误信息,看起来是您的SQL语句缺少必要的结尾语句,导致查询出错。您可以尝试在SQL语句的最后加上";",如下所示:
```
let page = body.pageNum;
let size = body.pageSize;
let sql = """
select * from grid_table
where (name like '%${body.name}%' or comment like '%${body.comment}%' or addtime = #{body.addtime} )
-- <if test="body.search != null and body.search!=''">
and (name like '%${body.name}%' or comment like '%${body.comment}%' or addtime = #{body.addtime} )
</if>
""";
sql = sql + ";"; // 加上分号
db.use("fast_admin").getSql(sql);
return kits.toZx(db.use("fast_admin").page(sql));
```
另外,您也需要检查SQL语句中的占位符是否正确,确保它们与查询参数匹配。
相关问题
$pagesize=10; $tbsql = "select count(*) from student_manage_sysytem"; $result = mysqli_query($conn, $tbsql); $row = mysqli_fetch_row($result); $num = $row[0]; mysqli_free_result($result); $npage = isset($_GET['page'])?:$page=1; $pagenum=new pre_page($npage,$num,$pagesize); $npage=$pagenum->npage(); // $_SESSION['t1page'] = $npage; // echo "pagesize=".$pagesize; $navi_page=new navigate_page("?",$num,$npage,$pagesize); $navi_page->show_page(); //显示翻页导航条 $limit=$navi_page->getlimit(); echo " 共 $num 本教材";解释每行代码
这段代码是一个在学生管理系统中用于分页查询的例子。让我为您解释每行代码的含义:
1. `$pagesize=10;`:设置每页显示的记录数为10。
2. `$tbsql = "select count(*) from student_manage_sysytem";`:构建查询语句,统计学生管理系统中的记录总数。
3. `$result = mysqli_query($conn, $tbsql);`:执行查询语句,将结果保存在 `$result` 变量中。
4. `$row = mysqli_fetch_row($result);`:从查询结果中获取一行数据。
5. `$num = $row[0];`:将记录总数保存在变量 `$num` 中。
6. `mysqli_free_result($result);`:释放查询结果的内存。
7. `$npage = isset($_GET['page'])?:$page=1;`:判断是否存在名为 `'page'` 的 GET 参数,如果存在将其值赋给 `$npage` 变量,否则将 `$page` 设置为1。
8. `$pagenum=new pre_page($npage,$num,$pagesize);`:实例化一个分页类 `pre_page`,传入当前页码、记录总数和每页显示的记录数。
9. `$npage=$pagenum->npage();`:获取经过处理后的页码。
10. `$navi_page=new navigate_page("?",$num,$npage,$pagesize);`:实例化一个导航条类 `navigate_page`,传入当前页码、记录总数、经过处理后的页码和每页显示的记录数。
11. `$navi_page->show_page();`:调用导航条类的 `show_page()` 方法,显示翻页导航条。
12. `$limit=$navi_page->getlimit();`:获取用于分页查询的 SQL 语句中的 LIMIT 子句。
13. `echo " 共 $num 本教材";`:输出记录总数信息。
这段代码通过分页实现了对学生管理系统中的数据进行查询,并提供了翻页导航条方便用户浏览数据。
axios.post("/day06/opus/list",param) .then(response=>{ let resp = response.data; this.pageInfo = resp.data; }) //如果放外面先执行 this.num = this.pageInfo.pageNum; 和axios.post("/day06/opus/list",param) .then(response=>{ let resp = response.data; this.pageInfo = resp.data; this.num = this.pageInfo.pageNum; }) 两个代码的区别
这两段代码的区别在于变量 `this.num` 的赋值位置不同。
第一段代码将 `this.num` 的赋值放在了 `axios.post` 的后面,这意味着在 `axios.post` 请求完成并返回数据之前,`this.num` 将被赋值为 `undefined`。而在 `.then` 回调函数中,`this.num` 又被重新赋值为 `this.pageInfo.pageNum`。
第二段代码将 `this.num` 的赋值放在了 `.then` 回调函数中,这意味着只有在 `axios.post` 请求完成并返回数据后,`this.num` 才会被赋值为 `this.pageInfo.pageNum`。
因此,第二段代码更为合适,可以确保在获取到数据后再进行变量赋值,避免了变量值为 `undefined` 的情况。
阅读全文