我想使用PHP更新数据库中的字段。我写了这段代码,工作正常。 var2
的值为0,更新后其值为1。
我想使用字段var2
作为PHP变量,因此我可以将它用作if条件。
使用if条件我想更新var2
如果它的值是0
,并且如果var2
的值是1
则重定向到其他php文件。
<?php
session_start();
$con=mysql_connect("localhost","root","");
mysql_select_db("database",$con);
$sql = "SET SQL_MODE = ''";
mysql_query($sql,$con);
$sql = "UPDATE table SET var2=1 WHERE var1 = '".$_SESSION['user']."'";
if (){}
mysql_query($sql,$con);
if(mysql_error() != ""){
echo $sql." ".mysql_error();
}
mysql_close($con);
?>
我试过
$abc = $_POST['var2'];
$sql = "UPDATE table SET "$abc"=1 WHERE var1 = '".$_SESSION['user']."'";
但它对我不起作用,我得到了下一条消息“解析错误:语法错误,第10行的C:\ xampp \ htdocs \ egresadoslunes \ finalizar.php中的意外T_VARIABLE”
答案 0 :(得分:1)
您不能只在字符串文字后面添加变量。您应该使用.
运算符明确地连接它:
$sql = "UPDATE table SET " . $abc . "=1 WHERE var1 = '".$_SESSION['user']."'";
或者将其内联在字符串中:
$sql = "UPDATE table SET ${abc}=1 WHERE var1 = '".$_SESSION['user']."'";
强制性评论:
使用这种字符串操作技术会使您的代码对sql-injection攻击开放。您应该考虑使用prepared statements代替。
答案 1 :(得分:0)
检查行是否受到影响。
$sql = "UPDATE table SET var2=1 WHERE var2=0 and var1 = '".$_SESSION['user']."'";
$result=(mysql_query);
if( mssql_rows_affected($result) > 0){
//var 2 == 0
}
else{
//var 2 != 0
}