2013-12-09 34 views
-1

我有一個代碼,檢查用戶名是否存在,但是當我運行代碼並輸入用戶名我插入到我的數據庫使用phpmyadmin它說的用戶名劑量存在,我想知道我哪裏錯了?用戶名檢查回來時,用戶名已存在,當它不

這裏是我的PHP代碼:

<?php 
require_once 'connect.php'; 

$conn = dbConnect(); 
if (isset($_POST['username'])) 
{ 
$sql = $conn->prepare("SELECT COUNT(id) 
           FROM users 
           WHERE username = :username"); 

$sql->execute(array(":username" => $_POST['username'])); 
$rows_number = $sql->fetchColumn(); 

if($rows_number ==0) 
{ 
    echo "Username doesn't exist"; 
    exit; 
} 
else 
{ 
    echo "Username already exists"; 
    exit; 
} 
} 

?> 

這裏是我的PHP connect.php:

<?php 

function dbConnect(){ 
$db = null; 
$db_host = "localhost"; 
$db_username ="user"; 
$db_pass ="pass"; 
$db_name = "accounts"; 

try{ 
$db = new PDO('mysql:host='.$db_host.';dbname'.$db_name,$db_username,$db_pass); 

} 
catch (PDOException $e) { 
    echo '<p>Cannot connect to database !!</p>'; 
    exit; 
} 
return $db; 
} 

?> 
+4

你檢查過'$ rows_number'的值了嗎? – Paul

+0

不,我現在會這樣做 – user3084562

回答

0

因爲我沒有50+代表我不能發表評論,但發佈你的connect.php代碼,並排除用戶名和密碼,所以我可以看到它的connect.php是否給出了這個問題

編輯:你的問題鹼液在這裏:

';dbname'.$db_name,$db_username,$db_pass); 

應該

';dbname=' 

,然後在你的變量$ DB_NAME追加。進一步的解釋是'; dbname等於你給變量的值。

+0

我試過了,並解決了這個問題,謝謝。 – user3084562

+0

沒問題我只是在學習PDO,但是[這位YouTube上的傢伙很好的解釋了這個問題] http://www.youtube.com/watch?v=ncrjieoiTrg&list=PL0BBakFmJ-JlELdmy9LX7c_l7V4XMad84,[也可以查看php PDO手冊] http:// php.net/manual/en/book.pdo.php這很難理解,但觀看視頻和使用手冊,你會沒事的。 – user3052886

+0

好的,我會這樣做的 – user3084562

-2

你可能沒有初始化的查詢語句

/*創建一個準備好的聲明*/

<?php 
    $stmt = $mysqli->stmt_init(); 
    if ($stmt->prepare("SELECT District FROM City WHERE Name=?")) { 

    /* bind parameters for markers */ 
    $stmt->bind_param("s", $city); 

    /* execute query */ 
    $stmt->execute(); 

    /* bind result variables */ 
    $stmt->bind_result($district); 

    /* fetch value */ 
    $stmt->fetch(); 

    printf("%s is in district %s\n", $city, $district); 

    /* close statement */ 
    $stmt->close(); 
} 

    /* close connection */ 
    $mysqli->close(); 
?> 
+0

它總是讓我想知道是什麼讓人們寫出這樣的答案。 –

+0

其原因谷歌是他們的朋友,現在多數民衆贊成使用你的常識:) – user3084609