错误我得到:无论我尝试一个有效的用户名或密码,它总是说“对不起,用户名已存在”。有毛病我的逻辑,特别是与此代码块:PHP逻辑的用户名不工作
$q = $conn->query("SELECT uname FROM Student WHERE uname= $aRegUsr ");
$stmt = $conn->prepare($q);
$stmt->fetch($q);
if($stmt > 0){ #if there are 1 or more users with enter username, deny.
dbcred.php
<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'databasename';
?>
PHP:
<?php
#Login Details
require_once('dbcred.php');
$conn = new PDO("mysql:host=$host;dbname=$db", $user, $pass);
$aRegUsr = $_POST['regduser'];
#Check for Existing User
$q = $conn->query("SELECT uname FROM Student WHERE uname= $aRegUsr ");
$stmt = $conn->prepare($q);
$stmt->fetch($q);
if($stmt > 0){ #if find that username in use, deny ability to register, else{ALLOW}
echo "Sorry, username already exists";
}
else{
echo "Success";
}
?>
HTML
<form action="inc/check_regUsr.php" method="post" id="userLogon">
<div class="field required">
Username: <input type="text" name="regduser" tabindex="1" /><br />
</div>
<div class="field required">
Password: <input type="password" name="regdpass" tabindex="2" /><br />
</div>
<input type="submit" name="submitUser" />
</form>
DB表:Student
“SELECT UNAME FROM学生WHERE UNAME = $ aRegUsr” - 不,你会需要大约$ aRegUser单引号? SELECT uname FROM Student WHERE uname ='$ aRegUsr'例如? – Marvo
$ stmt是一个对象。它总是大于0. – Endophage