0
迁移PHP应用程序时,我一直在尝试下面的MySQL连接功能迁移到PDO:PDO异常1049从MySQL
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上述功能,但不会影响任何东西。我仍然得到错误: 致命错误:未捕获的异常 'PDOException' 有消息 'SQLSTATE [HY000] [1049]未知数据库 '用户''
我使用附带Bitnami RubyStack apache2的模块(V 。1.9.3-25),它使用PHP版本5.4.3 已经检查过php.ini文件,并且所有的PDO扩展都没有注释。 请帮忙!谢谢
pdo函数及其所有评论均基于sitePoint文章。我是一个完整的初学者与PDO。 – 2014-09-21 16:20:00
以及您的查询是不安全的..如果你没有消毒/逃脱电子邮件,如果你直接从客户端采取...使用准备好的语句,而不是 – 2014-09-21 16:22:04
谢谢。我知道这不是最佳做法,但输入($ email)在发送到此函数之前在主登录脚本中进行检查。我将把它移到这个函数中,但首先我需要PDO来识别数据库确实存在。 – 2014-09-21 16:28:43