mysql — выбор базы данных msyql на основе оператора if else и переменных php

Возникли проблемы с тем, чтобы заставить это работать и синтаксис — я никогда не делал ничего подобного раньше и не писал некоторые оригинальные вещи. У меня есть URL, который передает две переменные. Затем я получаю эти переменные на странице. Затем я хочу выбрать, к какой базе данных 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 или выдать ошибку. Куда я иду не так?

-4

Решение

При сравнении значений для логических операций вы должны использовать >, <, ==, ===, !=, или же !==, Вы используете один знак равенства, который предназначен не для сравнения, а для назначения.

Это то что ты делаешь

$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")

Документация

0

Другие решения

используйте == вместо =

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