-1

我需要一些关于 PHP 中 if 语句的帮助,因为我是新手

首先我有这个查询:

$sqlCmd = "SELECT user.name,user.level 
    FROM user.user 
    WHERE user.id = '".$_GET['char']."' 
    LIMIT 1";

现在我有第二个查询

visible $sqlUpdate = "UPDATE user.user 
    SET level='1' 
    WHERE id='".$_GET['char']."' 
    LIMIT 1";

我想做的是这样的:if level>1运行$sqlUpdate,否则打印错误。

4

6 回答 6

1

像这样试试

visible $sqlUpdate = "UPDATE user.user 
                      SET level='1' 
                      WHERE id='".mysql_real_escape_string($_GET['char'])."' 
                      AND level >1 
                      LIMIT 1";

参考这个链接,他们可以帮助你学习 http://sqlzoo.net/http://beginner-sql-tutorial.com/sql.htm

于 2013-03-21T04:18:18.667 回答
1
visible $sqlUpdate = "UPDATE user.user SET level='1' WHERE id='".mysql_real_escape_string($_GET['char'])."' AND level >1 LIMIT 1";

您的代码容易受到 sql 注入的影响 您需要正确转义所有请求


警告

您的代码容易受到sql 注入的影响,您需要全部转义get,更好的方法是使用Prepared 语句postrequest

好读

  1. 如何防止 PHP 中的 SQL 注入?
  2. PDO 准备好的语句是否足以防止 SQL 注入?

笔记

  1. 整个ext/mysqlPHP 扩展提供了所有以 mysql_ 为前缀的函数,从 PHP v5.5.0 开始正式弃用,并将在未来删除。所以使用PDO或者MySQLi

好读

  1. 不推荐使用 mysql 扩展并将在将来删除:请改用 mysqli 或 PDO
  2. MySQL 开发人员的 PDO 教程
  3. Pdo 初学者教程
于 2013-03-21T04:18:53.990 回答
0
$sqlCmd = "SELECT user.name,user.level FROM user.user WHERE user.id = '".$_GET['char']."' AND level>1 LIMIT 1";
if(mysql_num_rows($mysql_con)===1){
//run second query
}else{echo'error:'}
于 2013-03-21T04:21:13.840 回答
0

我认为这应该这样做......

$result = mysql_query($sqlCmd);
if($row = mysql_fetch_object($result)) {
    if ($row->level > 1)
    {
      mysql_query($sqlUpdate);
      //Might want to add a check here if it was successful... 
      echo "Done";
    }
    else
      echo 'error!!!';

}
mysql_free_result($result);
于 2013-03-21T04:21:55.807 回答
0

尝试这个

$sqlCmd = "SELECT user.name,user.level 
FROM user.user 
WHERE user.id = '".$_GET['char']."' 
LIMIT 1";

$resource = mysql_query($sqlCmd);
$temp_arr = mysql_fetch_assoc($resource);
$level    = $temp_arr['level'];
if($level > 1)
{
    $sqlUpdate = "UPDATE user.user 
    SET level='1' 
    WHERE id='".mysql_real_escape_string($_GET['char'])."' 
    LIMIT 1";

    mysql_query($sqlUpdate);
 }
于 2013-03-21T04:34:33.247 回答
-1
    mysql_query("UPDATE user.user SET level='1' WHERE id='".$_GET['char']."' and level>1 LIMIT 1");
于 2013-03-21T04:20:03.810 回答