【发布时间】:2021-04-03 13:15:49
【问题描述】:
我正在尝试将一个非常小的项目(可以通过拖放重新排列的数据列表)从通常的 PHP、mysqli 和 ajax “转换”为使用 MeekroDB。
它以原始形式运行良好(这是 Ajax 使用的小 PHP 文件):
<?
require_once __DIR__.'/../ini.php';
$SortingOrder = isset($_POST["SortingOrder_ids"]) ? $_POST["SortingOrder_ids"] : [];
if(count($SortingOrder)>0){
for($order_no= 0; $order_no < count($SortingOrder); $order_no++)
{
$query = "UPDATE SortingTable SET SortingOrder = '".($order_no+1)."' WHERE ID = '".$SortingOrder[$order_no]."'";
mysqli_query($con, $query);
}
echo true;
}else{
echo false;
}
?>
但现在我正在尝试使用 MeekroDB,所以我什么也没做:
<?
require_once __DIR__.'/../ini_meekro.php';
$SortingOrder = isset($_POST["SortingOrder_ids"]) ? $_POST["SortingOrder_ids"] : [];
if(count($SortingOrder)>0){
for($order_no= 0; $order_no < count($SortingOrder); $order_no++)
{
DB::query("UPDATE SortingTable SET SortingOrder=%i, WHERE ID=%i", $order_no+1, $SortingOrder[$order_no]);
};
echo true;
}else{
echo false;
}
?>
javascript/jQuery 脚本没有改变。当然,我已经更新了列表最初是如何从数据库中获取并显示在网站上的,并且效果很好。我仍然可以拖动东西,但它永远不会保存新的排序顺序。
我以前从未对 Ajax 做过任何事情。我最初使用此处找到的指南:http://learninfinity.info/drag-and-drop-table-row-sorting-ajax-php-and-mysqli/ 并让它很好地工作。但我希望它可以与 MeekroDB 一起使用,但我被卡住了。
【问题讨论】:
-
您没有遇到任何错误吗?如果有任何错误,您可以在浏览器中检查并在网络选项卡中查找。您可以使用 php 脚本文件顶部的
error_reporting(E_ALL)来获取任何错误。 -
不,没有错误。我不知道是不是因为 Ajax 运行的 PHP 脚本是一个单独的文件?使用网络检查器对我也没有多大帮助,它只是给出状态 200 并显示 ajax_update.php 文件确实运行了。
-
@Dharman 是的,我知道原始版本对 SQL 注入开放,因此我想使用 MeekroDB 而不是我遵循的教程使用的。据我所知,MeekroDB 可以有效避免 SQL 注入,但我很高兴知道其中是否存在您知道的漏洞?