2010-11-21 2 views
0

Я потратил довольно много времени, пытаясь понять, почему этот блок кода не работает. После входа в систему (на странице html, использующей сообщение для отправки данных в этот документ php), он говорит: «Невозможно выбрать базу данных !!» (без кавычек). Пожалуйста помоги! Спасибо!MySQL в php-ошибке

<?php 
$host="localhost"; 
$username="root"; 
$password=""; 
$db_name="firstTestLogins"; 
$tbl_name="members"; 

mysql_connect("$host", "$username, $password") or die("cannot connect to the database!!"); 
mysql_select_db("firstTestLogins") or die("cannot select the database!!"); 



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

$username=stripslashes($username); 
$password=stripslashes($password); 
$username=mysql_real_escape_string($username); 
$password=mysql_real_escape_string($password); 
$password = md5($password); 
echo "This is a debug statement. User = $username and password = $password <br><br><br>"; 
if(!($sql="SELECT * FROM $tbl_name WHERE username = '$username' and password = '$password")) {die(mysql_error());} 
$result = mysql_query($sql); 
$test3 = mysql_num_rows(/*$result*/mysql_query($sql)); 
echo "$test3"; 
if(mysql_num_rows(/*$result*/mysql_query($sql))) { //should be true because only one row should match the user and pass 
    $_SESSION['username'] =1; 
    $_SESSION['password'] =1; 
    header("location:login_success.php"); 

} 
else { 
    echo "The incorrect username or password was inserted"; 
} 
?> 
+0

Не уверен, почему это помечено SQL-сервер, который является совершенно другой продукт MySQL –

ответ

3

Это неправильно:

mysql_connect("$host", "$username, $password"); 

она должна быть

mysql_connect($host, $username, $password); 

вы увидите точную проблему вывода mysql_error().

mysql_select_db("firstTestLogins") 
or die("cannot select the database! ".mysql_error()); 
+0

После этого я получаю предупреждение: mysql_num_rows() ожидает, что параметр 1 будет ресурсом, boolean указан в /Applications/XAMPP/xamppfiles/htdocs/phplogintest/checklogin.php в строке 24 Предупреждение: mysql_num_rows() надеется параметр 1 является ресурсом, логическим данным в /Applications/XAMPP/xamppfiles/htdocs/phplogintest/checklogin.php в строке 26 Введено неверное имя пользователя или пароль – joshim5

0

Единственное, что я могу думать о том, что база данных firstTestLogins либо не существует в базе данных или не доступен с помощью комбинации имени пользователя/пароля, который вы используете.

1

В дополнение к комментариям о выборе базы данных:

if(!($sql="SELECT * FROM $tbl_name WHERE username = '$username' and password = '$password")) {die(mysql_error());} 

Глупо делать тест с mysql_error, если строка $ SQL это не набор ... это не будет генерировать MySQL ошибка

Вы также отсутствует закрытие 'в вашем $ SQL

$sql="SELECT * FROM $tbl_name WHERE username = '$username' and password = '$password'"; 
$result = mysql_query($sql); 
if(!$result) 
    die(mysql_error()); 
2

измените код от:

mysql_select_db("firstTestLogins") or die("cannot select the database!!"); 

к:

mysql_select_db("firstTestLogins") or die(mysql_error()); 

Это поможет вам понять, почему MYSQL не может выбрать БД

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