SQL错误:SQL语法中有错误;查看与您的手册相对应的手册

时间:2013-09-17 10:40:23

标签: php mysql sql

我的网站有问题。 我想在php中创建一个页面。 在这个页面我想要用户邀请用户。 但我有一个错误。 我不知道该怎么办。 thx all。

错误: SQL错误:SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在第1行的''附近使用正确的语法。

并在标题中有一个连接数据库。 这不是我的问题。

我的代码:

<?php
include('header.php');
$n1 = rand(1, 9);
$n2 = rand(1, 9);

if(isset($_POST['send'])) {
    $nr1 = base64_decode($_POST['nr1']);
    $nr2 = base64_decode($_POST['nr2']);
    $emailinvite = $db->EscapeString($_POST['email']);
    $rec = $db->FetchArray($db->Query("SELECT id,login FROM `users` WHERE `login`='".$data['login']."'"));

    if($nr1 + $nr2 != $_POST['captcha']){
        $mesaj = '<div class="error">pliz try again.</div>';
    }elseif($_POST['email'] == ""){
        $mesaj = '<div class="error">empty email</div>';
    }elseif ($db->GetNumRows($db->Query("SELECT id FROM `users` WHERE `email`='".$emailinvite."'")) > 0) {
        $mesaj = '<div class="error">your friend register!</div>';
    }else{
        $newhash = rand(1000000,9999999);
        $db->Query("INSERT INTO `inviteuser` (user,emailinvite,hash) values('".$data['login']."','".$emailinvite."','".$newhash."'");

            $error = 0;

        $subject ="invite to site";
        $message="hello

the user {$rec['login']} want to invite you to :
http://www.like2hits.net

click here: 
{$site['site_url']}/register.php?hash={$newhash}

thx!";
        $header="{$site['site_email']} <{$site['site_email']}>";
        $send_contact=mail($emailinvite,$subject,$message,$header);
        $mesaj = "<div class=\"success\">thx you!</div>";
    }
}?>
<div id="login">
            <div class="top">
                  <h1>invite friend</h1>
            </div>
            <div class="content"><div class="msg"><?echo $mesaj;?></div>
            <form id="form" method="post">
                <input type="hidden" name="nr1" value="<? echo base64_encode($n1); ?>" />
                <input type="hidden" name="nr2" value="<? echo base64_encode($n2); ?>" />
                <fieldset>

                        <label>email of your friend</label>
                    <p><span class="fontawesome-user"></span>
                        <input name="email" type="email" value="" required="required" />
                    </p>

                        <label><?=($n1." + ".$n2." = ?")?></label>
                    <p><span class="fontawesome-user"></span>
                        <input name="captcha" type="text" value="" required="required" />
                    </p>
                    <p style="text-align: center; padding-top: 15px;">
                    <input type="submit" name="send" value="invite user" />
                    </p>
                </fieldset>
            </form>
        </div>
    </div>
<?
include('footer.php');?>

3 个答案:

答案 0 :(得分:3)

一个常见的拼写错误:

$db->Query("INSERT INTO `inviteuser` (user,emailinvite,hash) 
values('".$data['login']."','".$emailinvite."','".$newhash."'");
                                                          // ^ Closing Bracket 
                                                               Missing

应该是:

$db->Query("INSERT INTO `inviteuser` (user,emailinvite,hash) 
values('".$data['login']."','".$emailinvite."','".$newhash."')");
                                                          // ^ Closing Bracket 

答案 1 :(得分:2)

$db->Query("INSERT INTO `inviteuser` (user,emailinvite,hash) values('".$data['login']."','".$emailinvite."','".$newhash."'");

您错过了)

答案 2 :(得分:-1)

我认为你的报价是错误的尝试:

$rec = $db->FetchArray($db->Query("SELECT id,login FROM 'users' WHERE 'login'='".$data['login']."'"));

$db->GetNumRows($db->Query("SELECT id FROM 'users' WHERE 'email'='".$emailinvite."'"))

$db->Query("INSERT INTO 'inviteuser' (user,emailinvite,hash) values('".$data['login']."','".$emailinvite."','".$newhash."'");

这取决于你拥有的mysql版本,但在我的版本中:``引号给我一个错误。 所以我使用''