PHP SELECT * FROM无法正常工作

时间:2013-11-16 21:23:22

标签: php database pdo prepared-statement prepare

我遇到以下代码时出现问题:

# Connection:
      require('config.php');
      $MyConnection = new PDO('mysql:host=x;dbname=x', $dbusername, $dbpassword);
      $MyConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

      # Collecting:
      $username = htmlspecialchars($_POST['username']);
      $password = htmlspecialchars($_POST['password']);
      $lastname = htmlspecialchars($_POST['lastname']);
      $email = htmlspecialchars($_POST['email']);

      # Checking:
      $findUser = $MyConnection->prepare("SELECT * FROM Users WHERE 
        Username = :username OR Email = :email LIMIT 2");
      $findUser->bindParam(':username', $username);
      $findUser->bindParam(':email', $email);
      $findUser->execute();
      $foundUser = $findUser->fetch(PDO::FETCH_OBJ);

      if($foundUser->Username == $username) {
        echo '
          <div id="pop-up" class="error">
          This username is already in use. Please choose another one.
          </div>
          ';
      }
      elseif ($foundUser->Email == $email) {
        echo '
          <div id="pop-up" class="error">
          This email address is already in use. Please choose another one. <br />
          If you think this is impossible, please
          <a href="http://www.askmephilosophy.co.nf/contact.php">contact us</a>.
          </div>
          ';

每当我尝试注册一个新帐户时,我都会收到一个由主机预设的错误页面。所以我得到了404错误。我非常肯定这个问题存在于

$findUser = $MyConnection->prepare("SELECT * FROM Users WHERE Username = :username OR Email = :email LIMIT 2");

我在那段代码中做错了什么?

1 个答案:

答案 0 :(得分:1)

404错误来自找不到文件

<a href="http://www.askmephilosophy.co.nf/contact.php">contact us</a>.

档案http://www.askmephilosophy.co.nf/contact.php不存在。

在你没有显示的代码的某些部分中必须存在一些其他文件(在elseif之后的else中?)。如果用户名和电子邮件都是免费的,可以调用。

由于http://www.askmephilosophy.co.nf中的大多数链接都会导致404错误,因此您会为自己带来麻烦。

所有链接都应该是真实文件。在内容可用之前,这些 Stub 文件应该有一条消息,例如“正在建设中”和文件名等。