$sql = "SELECT * FROM `productos` WHERE `serial` = ".$_POST['articulo']."";
上面的查询无效,它在'where子句'中显示“未知列'KM3M34KL43M'”这太奇怪了!因为我告诉它列是serial
...
$sql = "UPDATE `productos` SET `cantidad` = {'".$cantidad."'} WHERE `serial` = ".$_POST['articulo']."";
然而,这个查询工作正常,而where子句是相同的
答案 0 :(得分:1)
如果文本类型为serial
,则必须引用该值,而不是
$sql = "SELECT * FROM `productos` WHERE `serial` = ".$_POST['articulo']."";
它应该是:
$sql = "SELECT * FROM `productos` WHERE `serial` = '".$_POST['articulo']."'";
HOWEVER ,您的代码容易受到SQLInjection的攻击,因此您必须将该值转义为传递用户提供的数据而不会出错。请参阅mysqli_real_escape_string()
等方法,并在构建查询时在$_POST['articulo']
上使用它。
答案 1 :(得分:0)
可能只是一个错字,但我认为你必须在POST
返回的单引号中包含:
$sql = "SELECT * FROM `productos` WHERE `serial` = '".$_POST['articulo']."'";