Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Данные из формы в SQL


Автор: Vex 20.12.2005, 00:58
Есть таблица clients с полями name, password, которые вводяться в форму и отправляються в этот скрипт, потом формируется запрос в БД $query = "select * from clients where clients.name=$name and clients.password=$pass"; но даже если такие name (в этом примере "max") и password (в этом примере "max") есть в таблице, то выдает...
Цитата
Unknown column 'max' in 'where clause'


код:

Код


<?

Error_Reporting(E_ALL & ~E_NOTICE);


// определяем переменные для доступа к нашей бд
$hostname = "localhost";
$username = "root";
$password = "";
$dbName = "lr5";

// таблица, где храняться клиенты
$userstable = "clients";

// присоединяемся к мускул серверу
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");

// выбираем базу данных
mysql_select_db($dbName) or die(mysql_error());


// составляем запрос
$query = "select * from clients where clients.name=$name and clients.password=$pass";
$res = mysql_query($query) or die(mysql_error());

// сколько нашлось записей
$number = mysql_num_rows($res);

/*echo "$name <br>";
echo "$pass <br>";
echo "$query <br>";*/

//если таких нет, то логин-пароль неправильны и надо зарегистрироваться:
if($number==0) echo "логін або пароль є невірними"



?>



Что я делаю не так? Может где-то тут clients.name=$name надо ставить двойные кавычки или что-то в этом роде.

Добавлено @ 01:07
все, решил проблему надо было переменные $name, $pass обрамлять в одиночные кавычки smile

Автор: R.M. 20.12.2005, 08:04
Неправильно запрашиваеш поля
Код

$query = "SELECT * FROM clients WHERE name='".$name."' AND password='".$pass."'";

Автор: Vex 20.12.2005, 17:13
Куксикус
Цитата
Неправильно запрашиваеш поля

У меня все работает... Почему надо использовать именно '".$name."'? Просто у меня опыт PHP два дня, могу не знать некоторых ньюансов smile

Автор: Bi0 20.12.2005, 17:34
Цитата(Vex @ 20.12.2005, 17:13)
Куксикус
Цитата
Неправильно запрашиваеш поля

У меня все работает... Почему надо использовать именно '".$name."'? Просто у меня опыт PHP два дня, могу не знать некоторых ньюансов smile

Это особенность языка SQL уже smile Значения varchar или текст должны быть в кавычках.

Автор: Mal Hack 20.12.2005, 21:02
http://vingrad.ru/PHP-ART-002849 - не все идеально, конечно, но принцип...
http://vingrad.ru/PHP-ART-002847
http://vingrad.ru/PHP-ART-002846

Автор: Temp 21.12.2005, 01:18
можно
name=`$name`или name='$name'
так тоже должно работать

Автор: Mal Hack 21.12.2005, 01:31
Цитата(Temp @ 21.12.2005, 01:18)
name=`$name`или name='$name'

Ошибаетесь, батенька. В первом случае name будет рассматриваться как имя поля (столбца) таблицы.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)