-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

看起来它可能是函数参数中的拼写错误。一个是 $forname,您在数组中分配 $forename。所以它可能是一个未定义的变量,或者正在发生的参数计数不匹配。

于 2013-02-03T17:29:30.513 回答