4

コードを調べて、すべてのクエリを準備済みクエリ (PDO) に変換していました。それに応じて接続ページを変更しました。mysql_error() expects parameter 1 to be resource, integer given関数ページをクリーンアップしていると、メール関数を参照するエラーに遭遇しました

email_exists($email){
    $query1 = mysql_query("SELECT COUNT(user_id) FROM tempusers WHERE 
    `email` = '$email'") OR die(mysql_error(0));
    $email = sanitize($email);

    return (mysql_result($query1,0)==1)? true : false;
}

これは関数ページであるため、接続ページの変数を呼び出すことができないということと、古いクエリの方法でまだ立ち往生しているという事実が相まって、このクエリを修正するのに苦労しています。このクエリを機能させるプロセスに関するアイデアと、一般的なヒントをいただければ幸いです。

4

1 に答える 1

2

関数内のエラーは、他の場所と同じように処理する必要があります。

ただし、これは関数内にあるため、関数のスコープ内で接続を使用できるようにする必要があります。

それを行うにはいくつかの方法があり、いくつかの例があります(それほど良くないものからより良いものまで...):

  1. 関数で PDO 接続変数をグローバルに宣言します。これを最終的な解決策としてはお勧めしませんが、物事を改善している間はうまくいくでしょう。
  2. PDO 接続を追加パラメーターとして関数に追加します。1. よりはましですが、すべての関数呼び出しを変更して新しいパラメーターを含める必要があります。
  3. OOP にリファクタリングし、依存性注入を使用して PDO 接続を電子メール クラス/オブジェクトに追加します。
于 2012-11-04T03:01:40.803 に答える