Php 如何修复此MySQL代码
如何修复以下代码Php 如何修复此MySQL代码,php,mysql,pdo,mariadb,Php,Mysql,Pdo,Mariadb,如何修复以下代码 function userExists($pdow, $login) { $userQuery = "SELECT * FROM login u WHERE login=:user;"; $stmt = $pdow->prepare($userQuery); $stmt->execute(array(':user' => $login)); return !!$stmt->fetch(PDO::FETCH_ASSOC); } $login = 'use
function userExists($pdow, $login)
{
$userQuery = "SELECT * FROM login u WHERE login=:user;";
$stmt = $pdow->prepare($userQuery);
$stmt->execute(array(':user' => $login));
return !!$stmt->fetch(PDO::FETCH_ASSOC);
}
$login = 'user';
$exists = userExists($pdow, $login);
if('$login')
$user= var_dump((bool) 'Exists');
{
echo "Login exsists!";
}
我的代码有两个问题
第一个错误:
回显“登录存在!”时出错。我一直在浏览器中看到这种回音
第二个错误:
当我收到echo“登录存在!”我的代码仍然会将数据插入数据库。只需:
if($login)
// this line doesnt make any sense!
// $user= var_dump((bool) 'Exists');
// so this is not a valid if clause
{
echo "Login exsists!";
}`
$servername = '';
$dbname = '';
$username = '';
$password = '';
$dbh = new PDO("mysql:host={$servername};dbname={$dbname}", $username, $password);
function user_exists($dbh, $Login) {
$Q = $dbh->prepare("SELECT * FROM login WHERE login = :Login");
$Q->bindParam(':Login', $Login);
$Q->execute();
return $Q->fetch(PDO::FETCH_ASSOC);
}
//Lets try:
$user = user_exists($dbh, 'email@example.com');
if ($user) {
echo 'User: ' . $user['login'] . ' was found in the database.';
} else {
echo 'The user was NOT found.';
}
也许
如果($exists){echo“exists”;}
您可以按照@devprow的建议尝试,当我这样做时,我会收到错误消息:“注意:在C:\xampp\htdocs\CDR\register.php的第35行bool(true)Login exists中使用未定义的常量exists-假定'exists'!(不要使用引号。。。只要如果($exists)
而不是如果($exists)
什么!{echo“存在”}!!同意原始代码没有意义。但是你不会想要$login左右的引号。请@YourCommonSense-Hmm在读了这篇文章后,我不得不承认我不知道,会根据需要编辑答案,不要再这样做:)这样更好。我还对它做了一些改进,删除了不必要的代码。几乎,只需复制我的答案并填写详细信息:)
try {
$pdow = new PDO('mysql:host=localhost;dbname=log_cdr', 'root', 'slawek132');
$pdow -> query ('SET NAMES utf8');
$pdow -> query ('SET CHARACTER_SET utf8_unicode_ci');
$pdow->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sqlw = "INSERT INTO login (login, pass, pass_v, email, email_v)
VALUES ('".$_POST["login"]."','".$_POST["pass"]."','".$_POST["pass_v"]."','".$_POST["email"]."','".$_POST["email_v"]."')";
function user_exists($login) {
$Q = pdow()->prepare("SELECT * FROM login WHERE login = :Login");
$Q->bindParam(':login', $Login);
$Q->execute();
if ($Q->rowCount() != 0) {
//User exist:
return $Q->fetch(PDO::FETCH_ASSOC);
} else {
//User doesn't exist.
return false;
}
}