Php Mysql查询未将数据插入数据库
我正在尝试创建一个连接到数据库的网站。Select语句用于显示数据,但insert和delete语句实际上都不会更改数据。我在谷歌和stackoverflow搜索过,当我被难倒时,我试图尝试各种“答案”,但它仍然不起作用。因此,我的代码的当前状态可能是冗余代码的大杂烩。一般来说,我对html和php都比较陌生,因此我非常感谢您的帮助。如果我的格式错误,我也向您道歉,因为我以前从未使用过类似stackoverflow的东西。以下是该网页的一个版本,供那些不愿看到该问题的人使用。编辑:修正。每个人的评论和回答都有所帮助,但事实证明,当发布的前两个变量包含数字时,我有一个if语句检查以确保输入仅为字母 如果(preg_match(“/[A-Z | A-Z]+/”,$_POST['name'])是罪魁祸首Php Mysql查询未将数据插入数据库,php,html,mysql,database,insert,Php,Html,Mysql,Database,Insert,我正在尝试创建一个连接到数据库的网站。Select语句用于显示数据,但insert和delete语句实际上都不会更改数据。我在谷歌和stackoverflow搜索过,当我被难倒时,我试图尝试各种“答案”,但它仍然不起作用。因此,我的代码的当前状态可能是冗余代码的大杂烩。一般来说,我对html和php都比较陌生,因此我非常感谢您的帮助。如果我的格式错误,我也向您道歉,因为我以前从未使用过类似stackoverflow的东西。以下是该网页的一个版本,供那些不愿看到该问题的人使用。编辑:修正。每个人的
<!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>
GMOVEID
乌莫维德
标题
体裁
评级
问题似乎是表单正在重新路由到提交时的另一个页面:
action="DBAUPDATE.php?go"
或
但是insert语句和样板代码在当前页面中:DBAMOVIES.php
您需要在dbupdate.php和dbadelet.php中添加insert语句和样板代码
只需创建上述两个页面并添加以下语句:
<html>
<body>
<?php include("DBAMOVIES.php"); ?>
</body>
</html>
问题似乎是表单在提交时正在重新路由到另一个页面:
action="DBAUPDATE.php?go"
或
但是insert语句和样板代码在当前页面中:DBAMOVIES.php
您需要在dbupdate.php和dbadelet.php中添加insert语句和样板代码
只需创建上述两个页面并添加以下语句:
<html>
<body>
<?php include("DBAMOVIES.php"); ?>
</body>
</html>
经典的mysql api与parse Error混合听起来并不愚蠢,但这意味着什么?我看到的第一个问题可能是:if(isset($\u GET['go']){。这是一个POST请求,因此不会设置$\u GET,在这种情况下不会触发任何其他操作。我将mysql更改为mysqli,取出了GET['go],现在检查了一些其他的解析错误。现在我得到了一个意外的文件结尾错误添加了一个链接到该网站的一个版本来展示这个问题。经典的mysql api与解析错误混合听起来并不愚蠢,但这意味着什么?我看到的第一个问题可能是:if(isset($\u GET['go')){。这是一个POST请求,因此不会设置$_GET,在这种情况下不会触发任何其他操作。我将mysql更改为mysqli,取出GET['go],现在检查了一些其他解析错误。现在我收到了一个意外的文件结尾错误。添加了一个指向网站版本的链接以显示该问题。