以下代码不起作用,调用php页面时echo
字符串为空字符串。
但是,当我删除我检查用户名是否已存在的部分时,代码按预期工作。
为什么会这样?
<?php
$db = new PDO('mysql:dbname=tipcc;host=localhost;charset=utf8', 'root', 'plsdonthack');
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// This Part Is Causing Some Problem
$flag=0;
$temp = $_GET[username];
$stmt2 = $db->prepare ("SELECT * FROM userinfo WHERE USERNAME=:username2)");
$stmt2->bindParam (':username2',$temp,PDO::PARAM_STR);
$stmt2->execute ();
// Till Here.
if ($stmt2->rowCount () > 0 )
{
$flag=1;
}
if ($flag == 0)
{
// This Part Works Fine
$stmt=$db->prepare ("INSERT INTO userinfo (NAME,IDNO,USERNAME,PASSWORD)
VALUES
(:name,:idno,:username,:password)");
$stmt->bindParam (':name',$_GET[name], PDO::PARAM_STR);
$stmt->bindParam (':idno',$_GET[idno], PDO::PARAM_STR);
$stmt->bindParam (':username',$_GET[username], PDO::PARAM_STR);
$stmt->bindParam (':password',$_GET[password], PDO::PARAM_STR);
if ($stmt->execute () == 1 )
{
echo "Registered Sucessfully...!! Goto Contests and Code..!";
}
else
{
echo "Not Registered Due To Some Internal Error....Contact Rohith R";
}
// Till Here
}
else
{
echo "Username Already Exists....Choose Another One";
}
?>
答案 0 :(得分:3)
您的SQL代码中有错误
SELECT * FROM userinfo WHERE USERNAME=:username2)
删除声明末尾的结束括号。
您的代码抛出异常,但由于在PHP配置中关闭参数display_error
,您没有看到它。
答案 1 :(得分:0)
尝试将您的代码放入try / catch块中:
try{
// your queries here
}catch(PDOException $Exception){
echo $Exception->getMessage();
}
您可以在看到或记录后再抛出另一个异常。