Сначала проверьте ваше соединение.
Затем, если вы хотите получить точное значение из базы данных, тогда вы должны написать:
$username = $_POST['username'];
$password = $_POST['password'];
$result = mysql_query("SELECT * FROM Users WHERE UserName =`$usernam`");
Или вы хотите получить LIKE
, то вы должны написать:
$result = mysql_query("SELECT * FROM Users WHERE UserName LIKE '%$username%'");
Символ !
используется для расширения истории csh
.
Если вы не используете эту функцию, set +o histexpand
(aka set +H
) отключает это поведение. Это отключено для скриптов, но часто разрешено для интерактивного использования.
В качестве обходного пути вы можете использовать одинарные кавычки вместо двойных кавычек - имея в виду кучер, их различную семантику. Например, если вам нужно комбинировать цитирование с переменной интерполяцией, вы можете изменить
echo "#!$SHELL" # oops, history expansion breaks this
на
echo '#!'"$SHELL"
(обратите внимание на соседние строки с одной кавычкой и с двойными кавычками; после того, как оболочка будет выполнена с этим, кавычки будут удалены, а строка #!
будет выводиться рядом со значением переменной SHELL
без пробелов между ними) или рядом других общих обходных путей, таких как
printf '#!%s\n' "$SHELL"
В моем случае все команды работают. Возможно, вы можете указать свою среду.
$ echo "\#\!"
\#\!
$ echo "#!"
echo "#"
#
$ echo "#!"
echo "#"
#
$ echo $BASH_VERSION
3.2.48(1)-release
По умолчанию bash поддерживает совместимое с csh
историческое расширение.
В bash
echo #!
будет печатать только новую строку, так как #
начинает комментарий.
В
echo "#!"
#
является частью строки, начинающейся с "
. Такие строки все еще проверяются bash для специальных символов. !
является специальным символом, если за ним следует любой другой текст.
-bash: !": event not found
В этом случае bash ожидает, что токен !"
ссылается на предыдущую команду в истории оболочки, начиная с "
, и не находит его. Все это само по себе !
не вызывает такого поведения:
$ echo \# !
# !
$ echo fee ! fie
fee ! fie
Наконец,
$ echo !echo
создает две строки, первая строка выводится оболочкой, чтобы показать, как шаблон выше расширяется до:
echo echo '# !'
, тогда как вторая строка является результатом выполнения расширенной команды: echo #!
См. также: Страница пользователя Bash в История Расширение
Другим обходным решением может быть добавление дополнительного пространства после «!» :
# echo "#! "
#!
echo '#!'
В принципе, с двойными кавычками ("
), иначе говоря, «слабым цитированием», Bash делает некоторые странные вещи со строкой, например, подстановкой переменных. С одиночным ('
) aka «сильным цитированием» строка берется буквально.
См., Например, здесь для более подробного объяснения цитирования.