2013-09-01 2 views
-2

Я только что начал с PHP. В настоящее время я работаю над скриптом входа для своей веб-страницы. Когда я пытаюсь запустить mysql_query(SELECT * FROM users WHERE username=$username) не работает. Я убедился, что использовал правильные имена, , но у меня всегда была проблема с функцией запроса. Это мой код, кто-нибудь видит проблему?Моя функция mqsql_query не работает

<?php 

$username = $_POST['username']; 
$password = $_POST['password']; 

if ($username&&$password) 
{ 
    $connect = mysql_connect("host", "dbname", "password!") or die ("Couldnt connect!"); 
    mysql_select_db("TwoogLogin") or die ('couldnt find datebase'); 

    $query = mysql_query("SELECT * FROM users WHERE username=$username") or die ('unable to run query'); 

    $numrows = mysql_num_rows($query); 

    echo $numrows; 
} 
else 
    die("Please enter a username and a password"); 
?> 
+1

Что не работает? Какая у вас ошибка? –

+3

Вы не должны публиковать пароли здесь ... – pduersteler

+0

Ваша переменная '$ username' не является ни экранированной, ни кавычкой в ​​запросе. Задайте 'mysql_error()' для получения дополнительной информации. Еще лучше, пока вы не читали, читайте современный учебник по [PDO и связанным параметрам] (http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers). – mario

ответ

1

Попробуйте так:

<?php 
$username = $_POST['username']; 
$password = $_POST['password']; 

if ($username!=='' && $password!==''){ 
$connect = mysql_connect("host", "dbname", "password!"); 
if (!$connect) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

$db_selected = mysql_select_db("TwoogLogin",$connect); 
if (!$db_selected) 
    { 
    die ("Cannot use TwoogLogin: " . mysql_error()); 
    } 

$query = "SELECT * FROM users WHERE username='$username'"; 
$numrows = mysql_query($query,$connect); 
echo mysql_num_rows($numrows); 

mysql_close($connect); 
}else{ 
echo "Please enter a username and a password"; 
} 
?> 

Как было предложено в комментариях ниже (@Pascamel) msql_* расширения устаревший PHP 5.5.0, и будет удален в будущем. Вместо этого следует использовать расширение MySQLi или PDO_MySQL.

<?php 
$username = $_POST['username']; 
$password = $_POST['password']; 


if ($username!=='' && $password!==''){ 
$connect = mysqli_connect("host", "dbname", "password!"); 
if (!$connect) 
    { 
    die('Could not connect: ' . mysqli_error()); 
    } 

$db_selected = mysqli_select_db("TwoogLogin",$connect); 

$query = "SELECT * FROM users WHERE username='$username'"; 
$numrows = mysqli_query($query,$connect); 
echo mysqli_num_rows($numrows); 

mysqli_close($connect); 
}else{ 
echo "Please enter a username and a password"; 
} 
?> 
+0

mysql_ * функции устарели в PHP 5.5, вы должно дать решение с функциями mysqli_ *. Просто sayin ' – Pascamel

+0

@ Паскамель, ты прав, я обновил свой ответ – meda

-1

Плохой синтаксис в вашем запросе! вы должны использовать username = '$ username' другой причиной является неправильное имя столбца, вы уверены, что имя ваших столбцов правильно?

+0

Я уверен, что мои колонки правы, да, я все равно получаю ошибку: Ошибка синтаксиса: ошибка синтаксиса, неожиданный T_VARIABLE в/home/content/58/10132358/html/twoog/login/login.php в строке 13 –

+0

Ок проверить содержимое запроса $, я думаю, что это неверно, поэтому, когда вы передаете его в mysql_num_rows, он не может рассчитывать, потому что запрос $ null! неверно в вашем запросе, проверьте свои переменные. используйте этот isset ($ username), чтобы проверить, что он не является пустым или нулевым varaiable. –

+0

. Я не получил то, что вы хотели, чтобы я делал. Может, попробуйте объяснить по-разному? (довольно уверен, что мой пользователь определен в режиме rifht) –

0
<?php 
//Set appropriate value for the following statements 
$connect = mysql_connect("mysql_server", "mysql_user", "mysql_password") or die ("Couldnt connect!"); 
mysql_select_db("database_name",$connect) or die ('couldnt find datebase'); 


$username = $_POST['username']; 
$password = $_POST['password']; 

if ($username && $password) 
{ 
    $query = mysql_query("SELECT * FROM users WHERE username='$username'") or die ('unable to run query'); 

    $numrows = mysql_num_rows($query); 

    echo $numrows; 
} 
else 
    die("Please enter a username and a password"); 
?> 
+0

У меня есть соответствующие значения для моего подключения к db, и я успешно подключился, у вас просто проблема выбора данных из db и запуск запроса в таблице ... –

Смежные вопросы