-2

以下の機能が動作しません。理由がわかりません。

function access_apply($email,$pwd,$forname,$surname,$postcode,$telephone,$mobile){
    global $cnx;
    $pwd = bcrypt_hash($pwd);
    $q = $cnx->prepare("INSERT INTO `users` (email, pwd, forename, surname, postcode, telephone, mobile) VALUES (:email, :pwd, :forename, :surname, :postcode, :telephone, :mobile)");
    $q->execute(array(':email' => $email, ':pwd' => $pwd, ':forename' => $forename, ':surname' => $surname, ':postcode' => $postcode, ':telephone' => $telephone, ':mobile' => $mobile));
}

コードが呼び出されると、コードが壊れ、それ以上何も実行されません。

4

2 に答える 2

4
  1. エラー報告をオンにする必要があります。
    「非オブジェクトのメンバー」エラーが発生していますが、表示されません。
  2. 上記のエラーが発生する理由を確認するには、PDO の例外を有効にする必要があります。

したがって、スクリプトの先頭に次のコードを追加します。

error_reporting(E_ALL);
ini_set('display_errors',1);

そしてこれは接続後:

$cnx->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

ajax リクエストで何が起こるかを確認するには、Firebug を使用します ([ネット] タブ、[レスポンス] セクション)。

または-はるかに優れています!-

エラー ログを有効にして、Web サーバーのエラー ログですべてのエラーを監視します。
そのためには、以前の設定を変更し、別の設定を追加します

ini_set('display_errors',0);
ini_set('log_errors',1);
于 2013-02-03T17:29:55.160 に答える
0

関数パラメーターのタイプミスのようです。1 つは $forname で、配列に $forename を割り当てます。そのため、未定義の変数、または発生しているパラメーター数の不一致である可能性があります。

于 2013-02-03T17:29:30.513 に答える