Php 正在尝试将mysqli_查询插入到我的数据库中。不接收错误
我试图制作一个非常基本的表单,插入到我的数据库中。我花了无数个小时来做这个。我觉得我理解每一行代码。我无法想象问题出在哪里。我没有收到任何错误,尽管我还没有在代码中设置错误检查。希望我的问题简单明了 这是我的connect.php文件$con是我与新mysqli的连接。talk是我的数据库Php 正在尝试将mysqli_查询插入到我的数据库中。不接收错误,php,mysql,database,mysqli,Php,Mysql,Database,Mysqli,我试图制作一个非常基本的表单,插入到我的数据库中。我花了无数个小时来做这个。我觉得我理解每一行代码。我无法想象问题出在哪里。我没有收到任何错误,尽管我还没有在代码中设置错误检查。希望我的问题简单明了 这是我的connect.php文件$con是我与新mysqli的连接。talk是我的数据库 <?php $con= new mysqli("localhost","root","","talk"); if (mysqli_connect_errno()) { echo "Failed to
<?php
$con= new mysqli("localhost","root","","talk");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
?>
这是我的html的相关表单部分。标题和内容以及我试图插入数据库的两条信息。我包括connect.php。文本区域应通过form=“talkform”链接到表单。这个表单使用action=“process.php”,我将在下面介绍它
<?php
include 'connect.php';
?>
<center>
<h1>/talk/</h1>
<form method="post" action="process.php" id="talkform">
<input type="text" name="title"/><br><br>
<textarea form="talkform" rows="10" cols="80" name="content"></textarea><br>
<input type="submit" value="talk" />
</form>
/谈话/
这是我的process.php。我也在这个文件中包含了connect.php。不确定这是否是多余的,是否会造成问题,但我不这么认为。我还使用了这个$\u服务器['REQUEST\u METHOD']位,这是我从一个教程中学习的。不确定是否有更好的方法来实现这一点。我把一切都放入变量中。当我处理错误时,它都在mysqli_查询行上。我最强烈的怀疑是那是罪魁祸首
<?php
include 'connect.php';
if($_SERVER['REQUEST_METHOD'] = 'POST')
{
$title = $_POST['title'];
$content = $_POST['content'];
$operation = "INSERT INTO
main(title, content)
VALUES($title, $content);";
$result = mysqli_query($con, $operation);
}
?>
我希望我没有遗漏任何东西。一个多星期以来,我一直在努力让数据库正常工作。这是一个痛苦的过程,虽然我学到了很多,但我没有得到任何工作。请提供帮助,谢谢。使用
==
运算符进行比较
if($_SERVER['REQUEST_METHOD'] == 'POST')
并引用查询变量
$operation = "INSERT INTO main(title, content) VALUES('$title', '$content');";
所以代码看起来像是转义字符串
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$title = mysqli_real_escape_string($_POST['title']);
$content = mysqli_real_escape_string($_POST['content']);
$operation = "INSERT INTO main(title, content) VALUES('$title', '$content');";
$result = mysqli_query($con, $operation);
}
使用empty()
或isset()
第4行:如果($\u服务器['REQUEST\u方法']='post'),则最好使用检查post值是否存在。
更好的方法是使用if(isset($\u POST['title'))
直接检查表单是否已发送
当您调用mysqli\u error()
时,如果您尝试插入不带引号的字符串(并且您不会转义输入,请查找SQl注入),您会发现我们的错误
mysqli\u查询后,您没有检查错误,当然您不会看到任何错误
。。。值(foobar、baz)
,无效。值周围缺少引号。然而,如果你正确地使用准备好的语句,这将成为一个不成问题,所以忽略它将查询更改为
“插入到主(标题、内容)值(““$title.”,“$content.””);“
如果($\u服务器['REQUEST\u方法']='POST')
将“POST”分配给变量,则将其更改为使用比较=
认为Different完全正确。上帝啊,我充满了喜悦。我确实花了很多时间去摆弄那些引号和句号,但没能弄对。有人能解释一下它们是如何工作的以及如何使用它们吗?
$operation = "INSERT INTO main(title, content) VALUES('" . mysqli_real_escape_string($con, $title) . "', '" . mysqli_real_escape_string($con, $content) . "')";