我正在运行以下内容,它似乎是从数组中提取数据,因为错误包含我查询的所有数据,所以我不知道为什么我收到错误:
<?php
$user = $_POST[cf_id];
$form = $_POST[uid];
$date = date("d-m-Y");
$query = mysql_query("UPDATE hqfjt_chronoforms_data_addupdatelead SET '".$form."' = '".$date."' WHERE cf_id = '".$user."' ")
or die(mysql_error());
?>
我得到的错误是:
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 ''185cfb5654aacf3038e3f26491f227356b5d768f'= '30 -12-2011'附近'' 第1行的cf_id = '32'
正如您所看到的那样,数据被拉入,所以不确定我的某处有语法错误?
答案 0 :(得分:3)
如果`$form
`是一列,请不要使用引号(')而应使用重音符(`)。 (所以把它变成'$form
`)
答案 1 :(得分:0)
$ 10表示你的字符串中有一个撇号,并且没有费心逃避它,让你自己接受SQL注入攻击。
答案 2 :(得分:0)
试试这个:mysql_real_escape_string
<?php
$user = mysql_real_escape_string($_POST[cf_id]);
$form = mysql_real_escape_string($_POST[uid]);
$date = mysql_real_escape_string(date("d-m-Y"));
$query = mysql_query("UPDATE hqfjt_chronoforms_data_addupdatelead SET '".$form."' = '".$date."' WHERE cf_id = '".$user."' ")
or die(mysql_error());
?>
答案 3 :(得分:0)
这里的问题是你正在调用的$ form被用作列名。由于您是从名为UID的post参数填充它,我假设这是不正确的。你可能想要的是更多的东西:
"UPDATE hqfjt_chronoforms_data_addupdatelead SET `date` = '".$date."' WHERE cf_id = '".$user."' and `uid` = " . $form;
我确信这不完全正确,但将UID用作列名是没有任何意义的。