基于if else语句和php变量的mysql数据库选择

时间:2014-12-22 19:04:38

标签: php mysql conditional-statements

无法使这个工作和语法 - 我以前从未做过这样的事情,也没有写过一些原始的东西。我有一个传递两个变量的网址。然后我在页面中获取这些变量。然后,我想根据其中一个变量选择连接到哪个mysql数据库。

变量:

$account_id=$_GET["reference"];

然后选择要连接的数据库:

$link = mysql_connect('connect', 'user', 'pass');
if (!$link) {
     die('Not connected : ' . mysql_error());
 }

if ($item = "A"){
     $db_selected = mysql_select_db('A', $link);
     } elseif ($item = "B") {
    $db_selected = mysql_select_db('B', $link);
    } elseif (!$db_selected) {
    die ('Can\'t use foo : ' . mysql_error());
 }

一直在选择项目A.我无法选择B或给出错误。我哪里错了?

2 个答案:

答案 0 :(得分:1)

使用==而不是=

if ($item == "A"){
     $db_selected = mysql_select_db('A', $link);
     } elseif ($item == "B") {
    $db_selected = mysql_select_db('B', $link);
    } elseif (!$db_selected) {
    die ('Can\'t use foo : ' . mysql_error());
 }

答案 1 :(得分:0)

比较逻辑运算的值时,您必须使用><=====!=!==。您正在使用单个等号,这不是用于比较而是用于分配。

这就是你在做什么

$item = 'b';          // a single equals sign assigns a value
if ($item = 'a') {    // so in this line, we are not comparing but assigning!
    echo 'Item is a'; // this line will always be reached
} else {
    echo 'Item is b'; // this line will NEVER be reached
}
echo 'Item = '.$item; // will ALWAYS read "Item = a"

这就是您的意图

$item = 'b';           // a single equals sign assigns a value
if ($item == 'a') {    // double-equals compares value, with type juggling
    echo 'Item is a';  
} else {
    echo 'Item is b';  // now this line will be reached, because item != 'a'
}
echo 'Item = '.$item;  // will read "Item = b"


`==`  - value is equal, not necessarily the same type (1 == "1")
`!=`  - value is not equal, may or may not be the same type (2 != "3")
`===` - value is equal AND the same type (1 === 1)
`!==` - value is not the same type, or not the same value (2 !== "2")

<强>文档