Ich habe versucht, Daten in die Datenbank mit Ajax und PHP einfügen. Ich habe jedoch keine Ahnung, warum es nicht funktioniert. Ich habe die HTML-Datei getestet, alle Artikel, Kategorie, Preis sind gültig und die PHP-Datei gibt mir "Erfolg" nur die Daten in die Datenbank eingefügt ist leer.AJAX-Anfrage funktioniert, aber keine Daten in die Datenbank eingefügt
$(document).ready(function(){
var url = "http://domain/addProduct.php?callback=?";
$("#addProduct").click(function() {
var itemName = $("#itemName").val();
var category = $("#select_category").val();
var price = $("#price").val();
var dataString = "$itemName=" + itemName + "&category=" + category + "&price=" + price + "&addProduct=";
if ($.trim(itemName).length > 0 & $.trim(category).length > 0 & $.trim(price).length > 0) {
$.ajax({
type: "POST",
url: url,
data: dataString,
crossDomain: true,
cache: false,
beforeSend: function() {
$("#addProduct").val('Connecting...');
},
success: function(data) {
console.log(data);
if (data == "success") {
alert("Successfully add item");
} else if(data="failed") {
alert("Something Went wrong");
}
}
});
}
return false;
});
});
<?php
header("Access-Control-Allow-Origin: *");
require("config.inc.php");
$name = mysql_real_escape_string(htmlspecialchars(trim($_POST['itemName'])));
$category = mysql_real_escape_string(htmlspecialchars(trim($_POST['category'])));
$price = mysql_real_escape_string(htmlspecialchars(trim($_POST['price'])));
$date = date("d-m-y h:i:s");
$statement = $pdo->prepare("INSERT INTO product(name, category, price, date) VALUES(:name, :category, :price, :date)");
$statement->execute(array(
"name" => $name,
"category" => $category,
"price" => $price,
"date"=>$date
));
if($statement)
{
echo "success";
}
else
{
echo "failed";
}
?>
erhalten Sie einen Fehler? –
Sie müssen die Variablen nicht ausschließen, wenn Sie eine vorbereitete Anweisung verwenden. Und Sie können 'mysql_XXX'-Funktionen nicht verwenden, wenn Sie PDO verwenden. – Barmar
Es gibt auch keinen Grund, 'htmlspecialchars()' beim Einfügen in die DB zu verwenden. Das sollte nur bei der Anzeige auf einer Webseite verwendet werden, um XSS zu verhindern. – Barmar