【问题标题】:PHP error can't figure it out something to do with SQL stuff I thinkPHP错误无法弄清楚我认为与SQL有关的东西
【发布时间】:2010-04-02 19:45:53
【问题描述】:

好的,错误显示在此代码中的某处

    if($error==false) {

        $query = pg_query("INSERT INTO chatterlogins(firstName, lastName, gender, password, ageMonth, ageDay, ageYear, email, createDate) VALUES('$firstNameSignup', '$lastNameSignup', '$genderSignup', md5('$passwordSignup'), $monthSignup, $daySignup, $yearSignup, '$emailSignup', now());");
        $query = pg_query("INSERT INTO chatterprofileinfo(email, lastLogin) VALUES('$email', now())";);
        $_SESSION['$userNameSet'] = $email;
        header('Location: signup_step2.php'.$rdruri);

    }

有人看到我做错了吗???抱歉,我太不具体了,但我盯着它看了 10 分钟,我想不通。

【问题讨论】:

    标签: php sql postgresql


    【解决方案1】:
    $query = pg_query("INSERT INTO chatterprofileinfo(email, lastLogin) VALUES('$email', now())";);
    

    结尾附近的分号 (;) 放错了位置。它应该在字符串内:

    $query = pg_query("INSERT INTO chatterprofileinfo(email, lastLogin) VALUES('$email', now());");
    

    【讨论】:

      【解决方案2】:

      在您的示例中,monthSignup、daySignup 和 yearSignup 没有被引用。

      【讨论】:

        【解决方案3】:

        当查询失败时,pg_query() 返回 false。 pg_last_error() 返回上一次操作的错误信息。
        希望所有这些变量 -$firstNameSignup、$lastNameSignup、$genderSignup ... 除了 $passwordSignup- 都已通过 pg_escape_string() 正确转义

        if($error==false) {
          $query = "
            INSERT INTO
              chatterlogins
              (
                firstName, lastName, gender, password,
                ageMonth, ageDay, ageYear, email, createDate
              )
              VALUES
              (
                '$firstNameSignup', '$lastNameSignup', '$genderSignup', md5('$passwordSignup'),
                $monthSignup, $daySignup, $yearSignup, '$emailSignup', now()
              )
          ";
          echo '<pre>Debug: query=', htmlspecialchars($query) , '</pre>';
          $rc = pg_query($query);
          if ( !$rc ) {
            die('pg_query failed: ' . htmlspecialchars(pg_last_error()) );
          }
        
        
          $query = "
            INSERT INTO
              chatterprofileinfo
              (email, lastLogin)
            VALUES
              ('$email', now())
          ";
          echo '<pre>Debug: query=', htmlspecialchars($query) , '</pre>';
          $rc = pg_query($query);
          if ( !$rc ) {
            die('pg_query failed: ' . htmlspecialchars(pg_last_error()) );
          }
        
          $_SESSION['$userNameSet'] = $email;
          header('Location: signup_step2.php'.$rdruri);
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-07-31
          • 1970-01-01
          • 1970-01-01
          • 2022-01-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多