-3

テーブルにクエリを実行しようとしていて、if ステートメントに応じて、そのテーブルに情報を挿入します。

私はこれまでのところ以下を持っていますが、エラーを受け取り続けています

"No database selected"

DBConfig.php

$username = 'access@new';
$password = 'access';

try {
    $conn = new PDO('mysql:host=localhost;dbname=new_site_co_uk', $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

クエリ ページ

function checkUser($uid, $oauth_provider, $username,$email,$twitter_otoken,$twitter_otoken_secret) 
{
    $query = mysql_query("SELECT * FROM `users` WHERE oauth_uid = '$uid' and oauth_provider = '$oauth_provider'") or die(mysql_error());
    $result = mysql_fetch_array($query);
    if (!empty($result)) {
        # User is already present
    } else {
        #user not present. Insert a new Record
        $query = mysql_query("INSERT INTO `users` (oauth_provider, oauth_uid, username,email,twitter_oauth_token,twitter_oauth_token_secret) VALUES ('$oauth_provider', $uid, '$username','$email','','')") or die(mysql_error());
        $query = mysql_query("SELECT * FROM `users` WHERE oauth_uid = '$uid' and oauth_provider = '$oauth_provider'");
        $result = mysql_fetch_array($query);
        return $result;
    }
    return $result;
}

PDO

    $sth = $conn->prepare('SELECT * FROM users WHERE oauth_uid = :uid AND oauth_provider = :oauth_provider');
    $sth->bindParam(':uid', $uid);
    $sth->bindParam(':oauth_provider', $oauth_provider);
    $sth->execute();
4

1 に答える 1

2

PDO を使用してデータベースに接続する場合は、PDO を使用してクエリをデータベースに送信する必要があります。その場合、mysql 拡張機能を使用してクエリを送信することはできません。

クエリの送信およびその他のクエリに使用PDO::query()します。また、準備済みステートメントを検討することもできます。SELECTPDO::exec()

于 2013-05-27T09:04:58.173 に答える