2016-04-22 31 views
0

私は登録をしていますが、私はusernameが使用されているかどうかをチェックしたいのですが、なぜmysql_num_rows();この関数は何もmysql_num_rows();投稿を投稿しません

mysql拡張子が廃止されました
<?php 
if(isset($_POST['name_signup'])) { 
    if($_POST['pass_signup']==$_POST['pass_a_signup']){ 
     $select=mysql_num_rows(mysql_query("SELECT * FROM users WHERE nick='".$_POST['nick_signup']."'")); 
     if($select=!0){ 
     $name=$_POST['name_signup']; 
     $secondname=$_POST['secondname_signup']; 
     $nick=$_POST['nick_signup']; 
     $pass=$_POST['pass_signup']; 
     $mail=$_POST['email_signup']; 
     $passx=md5(md5($pass)); 
     include 'db.php'; 
     mysql_query("INSERT INTO users(firstname,secondname,nick,pass,email,date)VALUE('".$name."','".$secondname."','".$nick."','".$passx."','".$mail."',NOW())"); 
     echo "Succesfully Signed up"; 
     echo'<meta http-equiv="refresh" content="3;URL=../index.php">'; 
     }else { 
      echo "Username used"; 
      echo'<meta http-equiv="refresh" content="3;URL=../index.php?page=signup">'; 
      } 
    } 
    else{ 
     echo'Passwords do not match'; 
     echo'<meta http-equiv="refresh" content="1;URL=../index.php?page=signup">'; 
     } 
} 

else { 
    echo'<meta http-equiv="refresh" content="0;URL=../index.php">'; 
} 
?> 
+1

データベース接続はどこですか? – Saty

+6

mysql_ *関数は使用しないでください。PHP7以降は廃止され、もう動作しません。代わりにmysqli_ *やPDOを使用してください。 – Aurel

+2

'mysql_ *'は 'php 5'以降では廃止され、' php7'では完全に削除されています。 mysqliまたは 'PDO'に切り替えてください –

答えて

1

を投稿しないであろうと、あなたはそれを使用して停止する必要があります。代わりにmysqliまたはPDOを試してください。

あなたのコードのバグはここあります:

if($select=!0){ 

あなたはこのようにそれを修正する必要があります:mysqlの使用を停止し、再び

if($select!=0){ 

。そして、プリペアドステートメントを使用して起動したり、コードが

+1

これらの2つの行の違いは何ですか? –

0

使用しないでくださいSQLインジェクションの危険があるmysql_ ()を使用mysqli_()mysqlのよう_ *()

更新このif($select=!0){"if($select > 0){"または

に減価償却されます
$qry = mysql_query("SELECT * FROM users WHERE nick= '".$_POST['nick_signup']."' "); 
$select=mysql_num_rows(
$qry); 
     if($select > 0){