Возникли проблемы с тем, чтобы заставить это работать и синтаксис — я никогда не делал ничего подобного раньше и не писал некоторые оригинальные вещи. У меня есть 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 или выдать ошибку. Куда я иду не так?
При сравнении значений для логических операций вы должны использовать >
, <
, ==
, ===
, !=
, или же !==
, Вы используете один знак равенства, который предназначен не для сравнения, а для назначения.
Это то что ты делаешь
$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")
Документация
используйте == вместо =
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());
}