php - 使用php编程更新mysql表中的字段值

标签 php mysql

$id = $_REQUEST["Uid"];

$query = "update prd set name='".$_POST['nm']."', char='".$_POST['ch']."', price='".$_POST['pr']."', sp_pri='".$_POST['spr']."', is_eli='".$_POST['enb']."', upd='".$_POST['ud']."', img='".$_FILES['img']['name']."', c_id='".$_POST['cid']."' where id=".$id;

$r = mysql_query($query) or die(mysql_error());
if ($r == 1)
    echo "Record Updated";

我从该查询中收到以下错误,但我不确定如何解决它 - SQL 对我来说看起来没问题!我做错了什么?

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 'char='b', price='150', sp_pri='100', is_eli='Yes', upd='Mon Jul 23 2012 17:23:24' at line 1

最佳答案

char 是 SQL 中的保留字。如果您将此类关键字用作列名,则必须将它们括在反引号中(对于列名,您应该始终这样做)!

$query="update prd set `name`='".$_POST['nm']."', `char`='".$_POST['ch']."', `price`='".$_POST['pr']."', `sp_pri`='".$_POST['spr']."', `is_eli`='".$_POST['enb']."', `upd`='".$_POST['ud']."', `img`='".$_FILES['img']['name']."', `c_id`='".$_POST['cid']."' where `id`=".$id;

此外,通过将 $_POST 变量直接添加到查询中而不事先对其进行清理,您会使系统面临任何类型的攻击,从而危及您的数据和网站。

看看mysqliPDO以规避此类问题。

关于php - 使用php编程更新mysql表中的字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11645537/

相关文章:

PHP Insert 似乎回滚

php - 更新数据库表行

python - 无论设置为 True,settings.DEBUG 仍然为 false

mysql - 是否有可能模仿或鬼化一张 table ?

php - 我怎样才能 curl 深度爬行?

php - cake php 中模板和 View 的区别

php - 在 PHP 中替代 'or' 关键字

mysql - 还有其他的sql子句吗?

mysql - 返回 nth 的倍数之和

php - Opencart 2.2.0 支持按制造商搜索