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