我有一个代码可以检查用户名是否存在,但当我运行代码并输入我使用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.hp:
<?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;
}
?>
由于我没有50多名代表,我无法发表评论,只能发布你的connect.php代码并排除用户名和密码,这样我就可以看看是否是connect.php导致了问题
编辑:你的问题碱液在这里:
';dbname'.$db_name,$db_username,$db_pass);
应该是
';dbname='
然后追加到变量$db_name上。进一步的解释是‘;dbname等于您给变量的值。
您可能没有初始化查询语句
/*创建准备好的报表*/
<?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();
?>