У меня есть проект, и я должен использовать ajax с php. Я хочу зарегистрировать участника в базе данных. В ответе говорится «да», но база данных остается пустой. Это заняло слишком много времени. Вот моя форма и коды 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, но теперь я не понимаю, почему база данных не получает записи? Не могли бы вы объяснить, в чем ошибка?
Почти все способы пробовал, но все равно: /






Проблема в том, что вы используете неправильный синтаксис для 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
Это то же самое, сэр. :( Другой пример в инете он работает.
Если теперь у вас есть правильный синтаксис, вы можете проверить журналы sql и посмотреть, есть ли какие-либо ошибки. Возможно, у вас есть уникальный столбец, в который вы не должны вставлять и который не позволяет вам вставлять, или что-то подобное. Если у вас сейчас правильный синтаксис, значит, он должен работать.
В вашем разделе «Код SQL»,
$kayit->execute(...)вы используете$sifrele. Но вif (...)вы проверяете!$sifre. Вы уверены, что$sifreleне пустой? Для отладки введите запрос INSERT в журнал и попробуйте запустить его вручную.