【发布时间】:2013-08-30 20:29:12
【问题描述】:
简单的设置,疯狂的可能原因(至少对于像我这样没有经验的程序员来说):
用我定义的 JS,然后调用:
function dbUpdate(x, y, z) {
$.ajax({
url: 'php/dbUpdate.php',
type: 'post',
data: {table: x, column: y, value: z},
success: function(html) {
}
});
}
dbUpdate("userbase", "currentLanguage", "en");
使用 php/dbUpdate.php,这些数据被捕获并处理到 UPDATE 查询中,该查询已经工作了一百万次:
$userID = 0;
$table = ($_POST['table']);
$column = ($_POST['column']);
$value = ($_POST['value']);
mysql_query("UPDATE $table SET $column=$value WHERE id=$userID", $con);
// assume $con is defined
问题:当 dbUpdate 的 'z' 参数是一个整数(例如,var z = 70;)时,没有问题。但是当它是一个简单的字符串时(例如,var z = "en"; 像上面一样),它就不会更新。
我已经检查了 db 的结构,它被设置为 'varchar',所以它应该接受字符串,但是,嘿,我是谁,我认为我对这件事了如指掌。
我猜这是一个初学者还没有感觉的简单语法,但我厌倦了无休止地调整语法而没有结果,或者结果在使用时会遇到麻烦以新的方式。
希望各位大佬能和我一起解决这个问题!
【问题讨论】:
-
除非你打算在你的回调函数中使用
html,因为你没有回调使用,你可以删除它。 -
mysql_query("UPDATE $table SET $column="$value" WHERE id=$userID", $con);
-
如果你使用它,你会得到一个语法错误,因为你没有正确连接你的变量。请看我的回答
标签: javascript mysql ajax string integer