这个剧本根本不起作用......谁能告诉我我做错了什么?
$id = $_POST['id'];
$name = $_POST['name'];
$date = $_POST['date'];
$shortdesc = $_POST['shortdesc'];
$link = $_POST['link'];
$target = $_POST['target'];
$sort = $_POST['sort'];
$html = $_POST['html'];
include('appvars.php');
$query = "UPDATE insight SET name='".$name."' AND SET date='". $date . "' AND SET html='" . $html . "' AND SET shortdesc='" . $shortdesc . "' AND SET link='" . $link . "' AND SET target='" . $target . "' AND SET sort='" . $sort . "' WHERE id='" . $id . "'";
mysqli_query($dbc, $query);
答案 0 :(得分:5)
您的值不是escaping,因此您很容易受到SQL注入以及无效语句的构造。例如,如果您的任何输入字符串包含撇号,则可能导致代码失败。
查看prepared statements,可以更轻松地使用parameters构建查询。
在您的查询中,您还需要使用逗号代替AND SET
。
$query = "UPDATE insight SET name='foo', date='2012-12-10' WHERE id=42";
UPDATE的语法在MySQL文档中描述:
答案 1 :(得分:0)
像这样使用,
$query = "UPDATE insight SET name='".$name."' ,date='". $date . "' ,html='" . $html . "' ,shortdesc='" . $shortdesc . "' ,link='" . $link . "' ,target='" . $target . "' ,sort='" . $sort . "' WHERE id='" . $id . "'";
答案 2 :(得分:0)
它的工作......现在检查
$id = $_POST['id'];
$name = $_POST['name'];
$date = $_POST['date'];
$shortdesc = $_POST['shortdesc'];
$link = $_POST['link'];
$target = $_POST['target'];
$sort = $_POST['sort'];
$html = $_POST['html'];
include('appvars.php');
$query = "UPDATE insight SET name='".$name."' ,date='". $date . "' ,html='" . $html . "' ,shortdesc='" . $shortdesc . "' ,link='" . $link . "' ,target='" . $target . "' ,sort='" . $sort . "' WHERE id='" . $id . "'";
mysqli_query($dbc, $query);
答案 3 :(得分:0)
我是mysql的专家,但是试一试。
我猜id
是一个整数。所以,不要引用它。
试试这个,
$query = "UPDATE insight SET name='".$name."' , date='". $date . "' , html='" . $html . "' , shortdesc='" . $shortdesc . "' , link='" . $link . "' , target='" . $target . "' , sort='" . $sort . "' WHERE id=". $id ;
答案 4 :(得分:0)
我认为SQL语法不正确,您可以像这样使用它:UPDATE tablename SET rowname = value , ....