【问题标题】:Fatal error: Call to undefined method PDO::select() in line 9致命错误:在第 9 行调用未定义的方法 PDO::select()
【发布时间】:2014-07-13 22:00:00
【问题描述】:

我的网站发生了一些奇怪的事情。一切正常,现在我在尝试登录时遇到此错误:

致命错误:在第 9 行调用未定义的方法 PDO::select()

这是我的代码:

<?php
$db = new PDO('mysql:host=****;dbname=******;charset=utf8', '*****', '*****');

if($_SERVER["REQUEST_METHOD"] == "POST")
{
// username and password sent from Form
$myusername = $_POST['username'];
$mypassword = $_POST['password'];
$result = $db->select("SELECT userID FROM miembros WHERE user='$myusername' and  pass='$mypassword' AND confirm IS NULL");
$row = $result->fetch(PDO::FETCH_ASSOC);
$count = $result->rowCount();
// code continues
?>

我在第 9 行和 $db 做错了什么?

【问题讨论】:

  • 您执行此操作的方式存在一些问题,这是一个很好的答案,应该会有所帮助:stackoverflow.com/a/767520/2287470
  • 但是我没有修改我的代码,昨天运行的很完美。
  • 这是不可能的,因为 PDO 没有“选择”方法。您之前是否将此代码与库或框架一起使用?
  • 哦哦..!现在我明白发生了什么。它的查询而不是选择
  • 你应该对你的密码进行加盐和哈希处理:stackoverflow.com/questions/401656/…

标签: php pdo


【解决方案1】:

您想使用PDO::prepare 来准备一份声明,然后execute

  $db = new PDO('mysql:host=****;dbname=******;charset=utf8', '*****', '*****');

  if($_SERVER["REQUEST_METHOD"] == "POST")
  {
    // username and password sent from Form
    $prepared = array(
      'username' => $_POST['username'],
      'password' => $_POST['password']);
    $stmt = $db->prepare("SELECT userID FROM miembros WHERE user=:username and  pass=:password AND confirm IS NULL");
    $result = $stmt->execute($prepared);
    $row = $result->fetch(PDO::FETCH_ASSOC);
    $count = $result->rowCount();
  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-28
    • 2015-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多