Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从PHP文件正确更新MySQL数据?_Php_Mysql_Sql_Sql Update - Fatal编程技术网

如何从PHP文件正确更新MySQL数据?

如何从PHP文件正确更新MySQL数据?,php,mysql,sql,sql-update,Php,Mysql,Sql,Sql Update,我想用PHP更新数据库中的一个字段。我写了这段代码,效果很好。var2的值为0,更新后其值为1。 我想将字段var2用作PHP变量,因此可以将其用作if条件。 如果值为0,则使用if条件更新var2,如果var2的值为1,则重定向到其他php文件 <?php session_start(); $con=mysql_connect("localhost","root",""); mysql_select_db("database",$con); $sql = "SET SQL_MODE =

我想用PHP更新数据库中的一个字段。我写了这段代码,效果很好。
var2
的值为0,更新后其值为1。 我想将字段
var2
用作PHP变量,因此可以将其用作if条件。 如果值为
0
,则使用if条件更新
var2
,如果
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);
?>

但这对我不起作用,我在第10行收到了下一条消息“Parse error:syntax error,C:\xampp\htdocs\egresadoslunes\finalizar.php中意外的t_变量”

您不能将变量放在字符串文字之后。您应该使用
操作符显式地连接它:

$sql = "UPDATE table SET " . $abc . "=1 WHERE var1 = '".$_SESSION['user']."'";
或者将其内联到字符串中:

$sql = "UPDATE table SET ${abc}=1 WHERE var1 = '".$_SESSION['user']."'";
强制性评论:

使用这种字符串操作技术会使代码容易受到sql注入攻击。你应该考虑使用它。

< P>检查行是否受影响。

$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
}

首先是你。它们不再得到维护,而是在使用。而是学习,并使用。您正在尝试在实际编写查询之前执行查询。你有一个空的
if
语句。你用
if(){}
做什么?检查你的引用方法,加上它应该做什么和
如果(){}
什么都不做;删除它。这假定
$abc
不是保留字或恶意内容。它确实需要根据已知的好列名白名单,并可能用反勾转义。
$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
}