我在使用 PDO 将数据保存/更新到我的数据库时遇到问题。
此功能保存我的数据:
function saveOrder($position,$id) {
$sql = '
UPDATE
'.DBPREFIX.'section_2
SET
order = ?
WHERE
id = ?';
$stmt = $this->db->prepare($sql);
$stmt->execute(array($position,$id));
return var_dump($stmt->errorInfo());
}
这是 sort_2.php:
$VAR_BACK = "../";
include($VAR_BACK."_config.php");
include($VAR_BACK."_config_db.php");
include($VAR_BACK."_functions.php");
include($VAR_BACK."_start.php");
include_once("../classes/helper.class.php");
$helper = new helper();
foreach ($_GET['item'] as $position => $item)
{
$helper->saveOrder($position,$item);
}
这是在我的前端 php 文件中:
<script>
// Return a helper with preserved width of cells
var fixHelper = function(e, ui) {
ui.children().each(function() {
$(this).width($(this).width());
});
return ui;
};
$(document).ready(function(){
$("#sort tbody").sortable({
helper: fixHelper,
update : function () {
var data = $(this).sortable('serialize');
//$('#info').text(data);
$("#info").load("sort_2.php?"+data);
}
}).disableSelection();
});
我总是收到这样的信息:
string(178) "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 'order = '2'
WHERE
id = '1'' at line 4"
第 4 行是:
order = ?
但我不知道这里可能出现什么错误。我试图转换为(int),我尝试了stripslashes,没有任何效果。
在 DB 中,列是:id = int(5) 和 order = varchar(10)
有什么建议么?谢谢。