我有一个 Web 应用程序,它允许用户执行生成一组分页结果的搜索。然后,用户可以从结果中选择其中一项以查看更多信息。然而,当用户按下后退按钮时,它会Error loading page
从 jQuery Mobile 产生一个错误。通过查看 Chrome Inspector 中的预览,这是由于1064
错误(我的 SQL 语法中的错误)造成的。鉴于查询在首次执行时有效,我认为这不是真正的问题。
对 CodeIgniter 没有太多经验,我的猜测是,当按下后退按钮时,控制器方法没有被发送所需的值来返回有效响应 - 因此出现错误。
任何人都可以帮助解决这个问题,因为我希望用户能够返回搜索结果并随意来回分页。
Error Number: 1064
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 'AND `library`.`votes` >= '1000'AND `library`.`language` != 'German'AND `ro' at line 5
SELECT *FROM (`library`)JOIN `classifications` ON `library`.`id` = `classifications`.`id`WHERE `library`.`rating` >=AND `library`.`votes` >= '1000'AND `library`.`language` != 'German'AND `classifications`.`meter` >ORDER BY `library`.`rating` DESC
Filename: /Applications/MAMP/htdocs/libraryTest/models/results_model.php
Line Number: 53
编辑
问题似乎是,正如我上面所说,当按下后退按钮时控制器方法不接受任何参数,因此它试图执行以下没有值的查询:
SELECT *FROM (`library`)JOIN `classifications` ON `library`.`id` = `classifications`.`id`WHERE `library`.`rating` >=AND `library`.`votes` >= '1000'AND `library`.`language` != 'German'AND `classifications`.`meter` >ORDER BY `library`.`rating` DESC
您可以看到 和 的值library.rating
不classifications.meter
存在。但我想重申,当首次调用控制器方法时,这些值存在于初始查询中。导航回页面时会发生此错误。
上面第53行对应的是model方法中SQL查询的执行:
return $sql_query->get()->result();