PHP没有正确执行

时间:2014-09-01 18:58:38

标签: php mysql pdo

以下代码不起作用,调用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";
}



?>

2 个答案:

答案 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();
}

您可以在看到或记录后再抛出另一个异常。