0

很抱歉这个疯狂的问题,但这似乎很奇怪!
我有一个代码:

if(isset($_GET['tablename'])){
    $tablename=$_GET['tablename'];
    var_dump($tablename);
    echo 'Table is set <br/>';
    if($tablename="product"){
        echo 'Table is product <br/>';
    };
    if($tablename="demanded"){
        echo 'Table is demanded <br/>';
    };
};

这就是我在展示中看到的:

string 'demanded' (length=8)
Table is set
表是产品
需要表

请帮助我想根据表值(产品或需求)运行子查询

4

4 回答 4

12

您应该使用==来进行比较,而不是单个=

于 2012-07-04T08:52:48.477 回答
4

elseif==or一起使用===(用于严格比较):

if($tablename == "product"){
    echo 'Table is product <br/>';
}
elseif($tablename == "demanded"){
    echo 'Table is demanded <br/>';
}

你的代码应该是这样的:

if(isset($_GET['tablename'])){
    $tablename=$_GET['tablename'];
    var_dump($tablename);
    echo 'Table is set <br/>';

    if($tablename === "product"){
        echo 'Table is product <br/>';
    }
    elseif($tablename === "demanded"){
        echo 'Table is demanded <br/>';
    }
}

您还拥有不需要;的大括号结尾,也在上面的代码中修复。}

你有过的错误

  • 您使用的是=代替=====
  • ;在结束大括号}之前有条件

您可以做出的改进

  • 使用===而不是==因为您知道已经在与字符串进行比较
  • 在您的代码中,使用elseif而不是单个if条件在语法上更正确
  • 如果这些表名用于与数据库交互,则永远不要$_GET['tablename']用于生产代码,否则您的代码不提供安全性
于 2012-07-04T08:52:54.437 回答
0

用于比较字符串使用

  strcmp(string1,string2);   //return 0 when both strings are equal 
于 2012-07-04T08:56:12.267 回答
0

像这样使用

 if(isset($_GET['tablename'])){
        $tablename=$_GET['tablename'];
        var_dump($tablename);
        echo 'Table is set <br/>';
        if($tablename=="product"){
            echo 'Table is product <br/>';
        };
        if($tablename=="demanded"){
            echo 'Table is demanded <br/>';
        };
    };
于 2012-07-04T08:57:41.487 回答