2011-10-01 62 views
0

你好,我想檢查,看看是否有與用戶名相同的數據庫中的所有準備,用戶將其添加到數據庫之前...但我得到一個白色的頁面。如果mysql結果= 1那麼。不管用?

$sql2="SELECT * FROM users WHERE username='$user' "; 
$result2=msyql_query($sql2,); 
if (mysql_num_rows($result2)==0) { 
echo "A account is all ready here" ; 

} 
else{ 

這是它檢查的主要位。

這裏是我的全碼:

include('config.php'); 

ini_set('display_errors',1); 
error_reporting(E_ALL); 


print_r ($_SESSION) ; 

if ($_SESSION['number_three'] == 3) { 

    $user = mysql_real_escape_string($_POST['username']); 
$pass = mysql_real_escape_string($_POST['password']); 
$email = mysql_real_escape_string($_POST['email']); 

$avatar = mysql_real_escape_string($_POST['avatar']); 
$starter = mysql_real_escape_string($_POST['starter']); 
$gender = mysql_real_escape_string($_POST['gender']); 

$_SESSION['start'] = $starter; 

$sql = "SELECT * FROM pokemon WHERE pic='$_SESSION[start]'"; 
$result = mysql_query($sql) or die(mysql_error()); 
$values = mysql_fetch_array($result); 


$sql2="SELECT * FROM users WHERE username='$user' "; 
$result2=mysql_query($sql2,); 
if (mysql_num_rows($result2)==0) { 
echo "A account is all ready here" ; 

} 
else{ 


$_SESSION['test'] = $values['name']; 


mysql_query("INSERT INTO users 
(username, password, email, avatar, gender) VALUES 
('$user','$pass','$email','$avatar','$gender' ) 
") or die(mysql_error()); 



mysql_query("INSERT INTO user_pokemon 
(pokemon, belongsto, slot) VALUES 
('".$_SESSION['test']."','$user','1' ) 
") or die(mysql_error()); 


    unset($_SESSION['number_three']); 


} else { 

echo " You do not ment to be here ! Go Away !"; 


} 
} 

如果我把代碼列於第一位腳本的頂部部分作品,但如果用戶已經在數據庫中不檢查.....用腳本有,現在我得到的白色頁面的第一篇文章的代碼位代碼也是我沒有得到任何錯誤的最高位....

+1

你必須在代碼中有很多語法錯誤。啓用錯誤消息或查看PHP錯誤日誌。 – JJJ

+0

你不想檢查,如果'mysql_num_rows($結果2)== 1',如果不'mysql_num_rows($結果2)== 0'? – someone

+0

沒有我想檢查用戶是否有一個帳戶沒有,如果用戶還沒有得到一個帳戶 – user967149

回答

1

mssql_query?改爲嘗試mysql_query

+0

仍然改變它 – user967149

+0

檢查你的PHP錯誤日誌後得到的白頁。 (或者在代碼之前添加'error_reporting(E_ALL);')。 –

+0

我有你可以看到我的代碼,沒有得到任何...只有一個白頁 – user967149

0

我不知道,如果這是唯一的問題,但首先,你在哪裏做的是第二個查詢,你打電話mssql_query而不是mysql_query,這是Microsoft SQL Server數據庫的查詢功能線,並不知道如何從MySQL獲得結果。

+0

我已經改變了,但仍然得到一個白頁 – user967149

0
  1. 嘗試添加E_STRICT,如果您的PHP比5.4.0舊。
  2. 添加or die (mysql_error());知道,如果有一個在查詢時出現錯誤。
  3. 嘗試使用if (!mysql_num_rows($result2))if (mysql_num_rows($result2) < 1)
1

使用PDO與異常拋出:

try { 
    $PDO = new PDO($dsn, $username, $password, array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION)); 

    //use $PDO->query(); Errors will be thrown and you'll be able to see them. This way you don't have to check the boolean return values on queries. 

} catch(PDOException $error) { 
    echo $error->getMessage(); 
} 
+0

+1 - 在2012年(近2013年),真的沒有任何藉口爲了再使用'''mysql_ *'''函數; **由於某種原因,它們已被棄用。 –