2010-11-21 9 views
0

私はこのコードブロックがなぜ機能していないのか理解しようとかなりの時間を費やしました。ログイン後(このPHPドキュメントにデータを送信するためにpostを使用するHTMLページ上)、「データベースを選択できません!!」と表示されます。 (引用符なし)。助けてください!ありがとうございました!私は考えることができるPHPエラーのMySQL

<?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

わからないを選択できない理由を把握するのに役立ちます

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

MySQL –

答えて

3

これは間違っている:

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

それはあなたがmysql_error()を出力することにより、正確な問題が表示されます

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

する必要があります。データベースの選択についてのコメントに加えて

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

これを変更した後、私は今警告を出しています:mysql_num_rows()は、パラメータ1がリソースになることを期待しています。/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());} 

$のSQL文字列が設定されていない場合は愚かはmysql_errorでテストを行っている...これは発生しません。 MySQLエラー

あなたはまた、あなたの$ SQLで閉じる」を逃している

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

コードを変更してくださいFrom:

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

へ:これは完全に別の製品がにあるSQLサーバーをタグ付けされている理由は、MYSQLはDB