そのため、今日mysql_ *からPDOに切り替えて実行しようとしていますが、どういうわけか結果がゼロになります。
私の声明は次のとおりです。
$serverConnector = new ServerConnector();
$db = $serverConnector->connectToServer();
$stmt = $db->prepare("SELECT * FROM `" . TABLE_USERS . "` WHERE `" . USER_NICKNAME . "` =:user_nickname OR `" . USER_EMAIL . "` =:user_email;");
$stmt->execute(array(':user_nickname' => "'".$name_or_email."'", ':user_email' => "'".$name_or_email."'"));
while ($row = $stmt->fetchAll(PDO::FETCH_ASSOC)) {
$this->id = $row[USER_ID];
$this->joined = $row[USER_JOINED];
...
}
$db = null;
このステートメントをXamppで純粋なSQLとして実行してみました。そこで働いた。ただし、ここでは機能しません。通過するすべてのパラメーターをトリプルチェックしましたが、すべてが正しいです。どういうわけか、プログラムはwhileループにまったく入りません。ServerConnectorは、PDOを介してデータベースに接続し、PDOデータベースオブジェクトを$dbに返すだけです。
ありがとう
編集:まあ、私はPHP5.4.7で最新のXamppを使用しています。PDOはデフォルトで有効になっているはずです。php.iniファイルを自分でチェックし、そこでも有効になりました
編集:これが私のServerConnectorクラスです。エラー報告が有効になっています。私は何も得られませんが:/
class ServerConnector {
public function connectToServer(){
$db = new PDO('mysql:host=' . DATABASE_HOST . ';dbname=' . DATABASE_NAME . ';charset=UTF-8',
DATABASE_USERNAME,
DATABASE_PASSWORD,
array(PDO::ATTR_EMULATE_PREPARES => false,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
return $db;
}
}