从MySQL迁移PHP应用程序时的PDO异常1049

时间:2014-09-21 16:15:56

标签: php mysql pdo bitnami

我一直在尝试将以下mysql连接函数迁移到PDO:

function validate_email_input($email)
    {
      $dbc = @mysql_connect('localhost', 'userName', '******');
      mysql_select_db('users', $dbc);

      $query = "SELECT email FROM user_list WHERE email='$email'";
      if ($result = mysql_query($query, $dbc))
        {
        $row = mysql_fetch_array($result);
        if ($row['email'] == $email)
            {
            return TRUE;
            }
          else
              {
              return FALSE;
              }
        }
        else
            {
            echo '<p class="error">Could not retrieve he data because:<br />' . mysql_error($dbc) . '.</p>
                    <p>The query being run was: ' . $query . '</p>';
            }
      }

这很好用。但是当我尝试使用以下PDO函数来获得相同的结果时,我收到错误:

function validate_email_input($email)
    {
        // Step 1: Establish a connection
        $db = new PDO("mysql:host=localhost;dbname=users", "userName", "******");

        // Step 2: Construct a query
        $query = "SELECT * FROM user_list WHERE email = '$email'";

        // Step 3: Send the query
        $result = $db->query($query);

        // Step 4: Iterate over the results
        if ($result)
            {
            $row = $result->fetch(PDO::FETCH_ASSOC);
            if ($row['email'] == $email)
                {
                return TRUE;
                }
              else
                  {
                  return FALSE;
                  }
            }
        // Step 5: Free used resources
        $result->closeCursor();
        $db = null;
    }

是的 - 我尝试使用try-catch尝试上述功能,但这并不影响任何事情。我仍然得到错误: 致命错误:未捕获的异常&#39; PDOException&#39;消息&#39; SQLSTATE [HY000] [1049]未知数据库&#39;用户&#39;

我使用Bitnami RubyStack(v.1.9.3-25)附带的apache2模块,该模块使用PHP版本5.4.3 已经检查过php.ini文件,并且所有PDO扩展都已取消注释。 请帮忙!感谢

1 个答案:

答案 0 :(得分:1)

找到解决方案!显然,它希望我在创建PDO对象时指定端口号(localhost:3307)而不仅仅是localhost。任何人都知道如何更改Bitnami RubyStack for Windows中的默认localhost端口?