php - 插入MYSQL字符串、PHP时POST值变空

标签 php mysql ajax string post

我正在使用 AJAX POST 将一些值发送到 PHP 文件: 我知道我得到了它们,因为我可以看到控制台中发送的值:

table=MENU&colid=MID&id=2&colname=STATUS&value=1

但是由于一些奇怪的原因,当我将它们插入查询字符串时:

"UPDATE ".$_POST['table']." SET ".$_POST['colname']." = ".$_POST['value']." 
WHERE ".$_POST['colid']." = ".$_POST['id'];

当 value = 1 时,值为空!!!

UPDATE MENU SET STATUS = '' WHERE MID = '2'

我通过将变量名称值更改为 val 解决了这个问题,有人经历过类似的事情吗? value 是关键字还是保留字?

有什么想法吗? 谢谢

最佳答案

这条SQL

UPDATE MENU SET STATUS = '' WHERE MID = '2'

实际上并不反射(reflect)您在 PHP 中所做的事情。该行:

"UPDATE ".$_POST['table']." SET ".$_POST['colname']." = ".$_POST['value']." 
WHERE ".$_POST['colid']." = ".$_POST['id'];

否则应阅读:

"UPDATE ".$_POST['table']." SET ".$_POST['colname']." = '".$_POST['value']."' 
WHERE ".$_POST['colid']." = '".$_POST['id'] . "'";

注意 SQL 语句中的单引号,而 PHP 代码中缺少这些单引号。

除此之外,我强烈建议不要通过 AJAX 从客户端向服务器发送部分 SQL,因为您正在向每个监听流量或只是窥视浏览器发送的数据的人公开数据库的内部结构。

关于php - 插入MYSQL字符串、PHP时POST值变空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21486890/

相关文章:

mysql - 不同表上多个 COUNT 的总和

jquery - 405 (METHOD NOT ALLOWED) for ajax request with django

javascript - Owlcarousel 2 动态加载的内容

php - 无法在 CodeIgniter 中获取验证码图像

mysql - 将数据从一个表透视到另一个表?

mysql - LEFT JOIN 无法替换 NOT EXISTS MYSQL

ajax - 在RemoteFunction内部为一个参数传递两个值

php - 我可以在 PHP 中混合使用 MySQL API 吗?

c# - PHP的realpath相当于C#

php - SSL 证书错误 : insecure URLs and a form