gpt4 book ai didi

PHP 和 SQL 代码不会向 MySQL 数据库添加任何内容

转载 作者:行者123 更新时间:2023-11-29 19:45:18 25 4
gpt4 key购买 nike

我正在尝试创建一个表单,该表单将获取标题、文本 block 、学生 ID,并在按下提交按钮时将其添加到数据库中。

为了简单起见,student_ID 保持不变,并将在项目稍后进行更改。

HTML 和 PHP 位于同一个文件中。

我的代码没有向数据库添加任何内容。

PHP

<?php
if($_POST["submit_button"]){

//here is the title and text that will be added to the database by the user
$title=$_POST["testimonial_title"];
$text=$_POST["testimonial_text"];

//create the sql statement
$sql="INSERT INTO testimonials
(testimonial_title, testimonial_text, student_ID)
VALUES(
'$title',
'$text',
1);"; //the student_ID is a foreign key and for simplicity I kept it at 1

$result = mysqli_query($con,$sql);

mysqli_close($con);
}
?>

HTML

  <<!--Page Content-- >
<h1 class="page-header">
Learning Journals<small>- Admin</small>
</h1>

<h3>
Update Learning Journals Plans
</h3>

<form name = "membership_form"
action = ""
id = "contactForm"
method = "post">

<label>Learning Journals Title:</label><br/>
<input type="text" name="testimonial_title" /><br/>
<label>Learning Journal:</label><br/>
<textarea rows="10" cols="100" name="testimonial_text"
maxlength="999" style="resize:none"></textarea>
<button type="submit" name ="submit_button" class="btn btn-primary">
Update
</button>
</form>
<hr/>
</body>
</html>

最佳答案

您必须在操作属性中指定您要发送的 php 文件。在 if 语句中,您需要比较您正在接收的数据:

if($_POST["testimonial_title"] &&  $text=$_POST["testimonial_text"])

尝试防止 SQL 注入(inject)。阅读相关内容。

在你的 sql 变量中,一旦你保护了你的变量,你必须有这样的东西: $sql= “插入感言 (感言_标题、感言_文本、学生 ID) 值( "'.$标题。"', "'.$文本。"', 1)”;

因为你有文字而不是数字。

阅读本文,您可以找到如何插入以及如何防止sql注入(inject):

PHP / MySQLi: How to prevent SQL injection on INSERT (code partially working)

关于PHP 和 SQL 代码不会向 MySQL 数据库添加任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41049108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com