我无法使用ajax作为成员php在数据库中注册以进行注册活动

时间:2018-11-04 22:08:19

标签: php mysql ajax

我有一个项目,我必须在PHP中使用ajax。我想将成员注册到数据库。反馈是,但是数据库保持空白。花了太多时间。这是我的表单和Ajax代码:

    <div class="panel-body">
        <script>
        function kayit(){
            var bilgiler = $("#kayitformu").serialize();

            $.ajax({
                type : "POST",
                data : bilgiler,
                url : "kayit.php",
                success: function(kayitol) {
                    if($.trim(kayitol) == "bos") {
                        sweetAlert('Hata','Boş alan bırakmayınız','error');
                    } else if ($.trim(kayitol) == "var") {
                        sweetAlert('Hata','Bu e posta zaten kayıtlı','error');
                    } else if ($.trim(kayitol)=="ok") {
                        sweetAlert('ok','Kayıt Başarılı','success');
                    } else if ($.trim(kayitol)=="hata") {
                        sweetAlert('Hata','Sistem Kaynaklı Hata Var','error');
                    }
                }
            });
        }
        </script>
        <form action="" id="kayitformu" onsubmit="return false;" method="POST">
            <fieldset>
                <div class="form-group">
                    <input type="text" name="adsoyad" placeholder="Enter name" class="form-control">
                </div>
                <div class="form-group">
                    <input type="text" name="eposta" placeholder="Email" class="form-control">
                </div>
                <div class="form-group">
                    <input type="password" name="sifre" placeholder="Password" class="form-control">
                </div>
                <div class="form-group">
                    <input type="submit" onclick="kayit();" name="Gonder" class="btn btn-primary" >
                </div>
            </fieldset>
        </form>
    </div>
</div>

这是我的sql代码:

<?php 

require 'baglan.php';

if($_POST) {
    $ad= $_POST["adsoyad"];
    $eposta = $_POST["eposta"];
    $sifre = $_POST["sifre"];

    $sifrele = sha1(md5($sifre));

    if(!$ad || !$eposta || !$sifre) {
        echo "bos";
    } else {
        $varmi = $db->prepare("SELECT eposta FROM uyeler WHERE eposta =:e");
        $varmi->execute(array(':e'=>$eposta));

        if($varmi->rowCount()) {
            echo "var";
        } else {
            $kayit = $db->prepare("INSERT INTO uyeler  SET
                adsoyad=:a,
                eposta =:e,
                sifre =:s
                ");
            $kayit->execute([':a'=>$ad,':e'=>$eposta,':s'=>$sifrele]);

            if ($kayit) {
                echo "ok";
            } else {
                echo "hata";
            }
        }
    }
}
?>

在ajax代码中,我将信息转发到php文件,但是现在我不明白为什么数据库没有得到记录?您能解释一下错误在哪里吗?

1 个答案:

答案 0 :(得分:0)

问题是您为mysql INSERT使用了错误的语法。您正在将UPDATE语句与INSERT查询混合在一起。应该是:

$kayit = $db->prepare(
        "INSERT INTO
            `uyeler`
            (`adsoyad`, `eposta`, `sifre`)
        VALUES
            (:a, :e, :s)");

请参阅文档中的示例:https://dev.mysql.com/doc/refman/8.0/en/insert.html