我的PHP和MySQL项目有问题。我想在数据库中插入多列值,但实际情况是,我已经被代码混淆了。如果您想看一下,就像这样:
if(!empty($_POST['brando'])){ $A="brand = '$brando'";} else{ $A=" ";} if(!empty($_POST['prnameo'])){ $B="product_name = '$prnameo'";} else{ $B=" ";} if(!empty($_POST['prido'])){ $C="product_id = '$prido'";} else{ $C=" ";} if(!empty($_POST['prcolo'])){ $D="color = '$prcolo'";} else{ $D=" ";} if(!empty($_POST['priceo'])){ $E="price = '$priceo'";} else{ $E=" ";} $sqlq="UPDATE $tbl_name2 SET $A $B $C $D $E where id='$id'"; mysql_query($sqlq);
我注意到在数据库中查询多值命令需要逗号,例如:
mysql_query("UPDATE $tablename SET collumn1='value', collum2='value' where id='value'");
现在我无法在任何这些代码中添加任何逗号或“,”,使PHP页面无法将其他变量值发送到服务器。
即使我将编码更改为:
$sqlq="UPDATE $tbl_name2 SET $A , $B , $C , $D , $E where id='$id'";除了该死的错误之外,它还会产生什么呢。 如果你知道我在说什么,我想请求帮助。我知道,听起来我已经被编纂了。
哦,这段代码,我忘了把它放在这些。
for ($help_given=1, $help_given++) { echo "Thanks"; }
答案 0 :(得分:2)
尝试使用“,”对数组进行implode(),如下所示:
<?php
if(!empty($_POST['brando'])){
$value[] ="brand = '$brando'";
}
if(!empty($_POST['prnameo'])){
$value[] ="product_name = '$prnameo'";
}
if(!empty($_POST['prido'])){
$value[] ="product_id = '$prido'";
}
if(!empty($_POST['prcolo'])){
$value[] ="color = '$prcolo'";
}
if(!empty($_POST['priceo'])){
$value[] ="price = '$priceo'";
}
$sqlq="UPDATE $tbl_name2 SET " . implode(",",$value)." where id='$id'";
mysql_query($sqlq);
?>
然后,您最好使用“mysql_escape_string”或“PDO :: prepare”方法来防止SQL注入。
答案 1 :(得分:1)
if(isset($_POST['brando']))
{
$brando=mysql_escape_string($_POST['brando']);
$A="brand = ".$brando;
}
else
{
$A=" ";
}
if(isset($_POST['prnameo']))
{
$prnameo=mysql_escape_string($_POST['prnameo']);
$B="product_name = ".$prnameo;
}
else
{
$B=" ";
}
if(isset($_POST['prido']))
{
$prido=mysql_escape_string($_POST['prido']);
$C="product_id = ".$prido;
}
else
{
$C=" ";
}
if(isset($_POST['prcolo']))
{
$prcolo=mysql_escape_string($_POST['prcolo']);
$D="color= ".$prcolo;
}
else
{
$D=" ";
}
if(isset($_POST['priceo']))
{
$priceo=mysql_escape_string($_POST['priceo']);
$E="price = ".$brando;
}
else
{
$E=" ";
}
$tbl_name="mytable";//to set
$id='primary_key';//to set
$sqlq="UPDATE $tbl_name SET $A, $B, $C, $D, $E where id='$id'";
mysql_query($sqlq);
只需将我评论为@的值设置为...