Я пытаюсь создать веб-сайт, который подключается к базе данных. Операторы My Select работают для отправки данных, но ни мои вставки, ни мои инструкции удаления фактически не изменяют данные. Я искал вокруг google и stackoverflow, и пытался попробовать различные «ответы», когда я был в тупике, но он все еще не работает. В результате, корректное состояние моего кода является мешаниной, вероятно, избыточного кода. Я довольно новичок в html и php в целом, поэтому я был бы признателен за помощь. Я также извиняюсь, если мое форматирование неверно, поскольку я никогда раньше не использовал ничего подобного stackoverflow. Вот версия веб-страницы, для тех, кто не увидит проблему в действии. EDIT: Исправлено. Все комментарии и ответы помогли, но оказалось, что у меня была проверка if, чтобы убедиться, что входные данные были только буквами, когда первые две опубликованные переменные содержали числа.Запрос Mysql, не вставляющий данные в базу данных
если (preg_match ("/ [AZ | AZ] + /", $ _POST [ 'имя'])) был виновником
<!DOCTYPE html>
<html>
<head>
<link rel = "stylesheet" type = "text/css" href = "style.css" />
</head>
<body>
<div>
<form method="post" action="DBADELETE.php?go" id="deleteform">
<input name="GMOVIE" type="text" placeholder="GMOVIEID of a movie to delete" required="">
<input name="UMOVIE" type="text" placeholder="UMOVIEID of a movie to delete" required="">
<input type="submit" name="submit" value="DELETE">
</form>
</div>
<div>
<form method="post" action="DBAUPDATE.php?go" id="updateform">
<input name="GMOVIE" type="text" placeholder="GMOVIEID of a movie to update" required="">
<input name="UMOVIE" type="text" placeholder="UMOVIEID of a movie to update" required="">
<input name="TITLE" type="text" placeholder="TITLE of a movie to update" required="">
<input name="GENRE" type="text" placeholder="GENRE of a movie to update" required="">
<input name="RATING" type="text" placeholder="RATING of a movie to update" required="">
<input type="submit" name="submit" value="UPDATE">
</form>
</div>
<div id = "content1" align = "center">
<table id = "MOVIES">
<tr>
<th>GMOVIEID</th>
<th>UMOVIEID</th>
<th>TITLE</th>
<th>GENRE</th>
<th>RATING</th>
</tr>
<?php
include 'bd.php';
$conn = new mysqli($host, $user, $pw, $bd_name);
if ($conn->connect_error) {
die("Connection Failed: " . $conn->connect_error);
}
if(isset($_POST['submit'])){
$gmovie=$_POST['GMOVIE'];
$umovie=$_POST['UMOVIE'];
$title=$_POST['TITLE'];
$genre=$_POST['GENRE'];
$rating=$_POST['RATING'];
$gmov_safe = mysqli_real_escape_string($gmovie,$conn);
$umov_safe = mysqli_real_escape_string($umov,$conn);
$title_safe = mysqli_real_escape_string($title,$conn);
$genre_safe = mysqli_real_escape_string($genre,$conn);
$rating_safe = mysqli_real_escape_string($rating,$conn);
$q ="INSERT INTO MOVIE (GMOVIEID, UMOVIEID, TITLE,GENRE, RATING) VALUES($gmovie,$umovie,'$title_safe','$genre_safe','$rating_safe')"
$conn->query($q);
if ($conn->query($q) === TRUE)
{
echo "New record created successfully";
}
else
{
echo "Error: " . $q . "<br>" . $conn->error;
}
}
?>
<?php
include 'bd.php';
$conn = new mysqli($host, $user, $pw, $bd_name);
if ($conn->connect_error) {
die("Connection Failed: " . $conn->connect_error);
}
$q = "SELECT GMOVIEID, UMOVIEID, TITLE, GENRE, RATING FROM MOVIE";
$result = $conn->query($q);
$row_count = $result->num_rows;
while ($row = $result->fetch_assoc()) {
if (($row_count % 2) == 1) {
echo "<tr>";
} else {
echo "<tr class=\"alt\">";
}
echo "<td>" . $row[GMOVIEID] . "</td>" .
"<td>" . $row[UMOVIEID] . "</td>" .
"<td>" . $row[TITLE] . "</td>" .
"<td>" . $row[GENRE] . "</td>" .
"<td>" . $row[RATING] . "</td>" .
"</tr>" . PHP_EOL;
$row_count--;
}
?>
</body>
<?php $conn->close(); ?>
</html>
классический MySQL апи смешивания с разбора ошибок –
Не звучать глупо, но что это значит? –
Первое, что я вижу, это может быть проблемой: if (isset ($ _ GET ['go'])) {. Это запрос POST, поэтому $ _GET не будет установлен, и в этом состоянии ничего не произойдет. – princessjackie