0
$sql = "SELECT * FROM `productos` WHERE `serial` = ".$_POST['articulo']."";

上面的查询不起作用,它说“'where 子句'中的未知列'KM3M34KL43M'”这太奇怪了!因为我告诉它该列被称为serial...

 $sql = "UPDATE `productos` SET `cantidad` = {'".$cantidad."'} WHERE `serial` = ".$_POST['articulo']."";

然而,这个查询工作得很好,并且 where 子句是一样的

4

2 回答 2

1

如果serial是文本类型,那么您必须引用该值,而不是

$sql = "SELECT * FROM `productos` WHERE `serial` = ".$_POST['articulo']."";

它应该是:

$sql = "SELECT * FROM `productos` WHERE `serial` = '".$_POST['articulo']."'";

但是,您的代码容易受到 SQLInjection 的攻击,因此您必须将值转义为传递用户提供的数据,否则这是错误的。查看类似的方法并在构建查询时mysqli_real_escape_string()使用它。$_POST['articulo']

于 2013-04-10T22:36:48.640 回答
0

可能只是一个错字,但我认为你必须用单引号将返回的值括起来POST

$sql = "SELECT * FROM `productos` WHERE `serial` = '".$_POST['articulo']."'";
于 2013-04-10T22:37:17.767 回答