Php 按下按钮时不插入数据
当我按下submit按钮插入记录时,它不会拉出任何错误,但当我检查数据库时,我发现也没有提交任何记录。请问我的剧本有什么问题。刚从php开始Php 按下按钮时不插入数据,php,mysql,Php,Mysql,当我按下submit按钮插入记录时,它不会拉出任何错误,但当我检查数据库时,我发现也没有提交任何记录。请问我的剧本有什么问题。刚从php开始 <?php if (isset($_POST['submitted'])){ include('Connections/connect.php'); $term= $_POST['term']; $details= $_POST['details']; $sql = "INSERT
<?php
if (isset($_POST['submitted'])){
include('Connections/connect.php');
$term= $_POST['term'];
$details= $_POST['details'];
$sql = "INSERT INTO people (term,details) VALUES ($term,$details)";
$newrecord ="Inserted Successfully";
}
?>
connect.php
<?php
$hostname_speedapp = "localhost";
$database_speedapp = "mydb";
$username_speedapp = "root";
$password_speedapp = "password";
$mydb= mysqli_connect($hostname_mydb, $username_mydb, $password_mydb) or trigger_error(mysql_error(),E_USER_ERROR);
?>
<?php
$hostname_speedapp = "localhost";
$database_speedapp = "mydb";
$username_speedapp = "root";
$password_speedapp = "password";
$mydb= mysqli_connect($hostname_speedapp, $username_speedapp, $password_speedapp,$database_speedapp) or trigger_error(mysql_error(),E_USER_ERROR);
?>
HTML
使用以下方法:
` $sql = "INSERT INTO people (term,details) VALUES ($term,$details)";
$result=mysqli_query($mydb,$sql);`
我认为您需要在sql查询中引用提交的数据值: 更改以下内容:
$sql = "INSERT INTO people (term,details) VALUES ($term,$details)";
到
脚本中甚至没有插入查询
$hostname_speedapp = "localhost";
$database_speedapp = "mydb";
$username_speedapp = "root";
$password_speedapp = "password";
$mydb= mysqli_connect($hostname_mydb, $username_mydb, $password_mydb) or trigger_error(mysql_error(),E_USER_ERROR);
$sql = "INSERT INTO people (term,details) VALUES ($term,$details)";
if (mysqli_query($mydb, $sql)) {
$newrecord ="Inserted Successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($mydb);
}
mysqli_close($mydb);
$hostname\u speedapp=“localhost”;
$database\u speedapp=“mydb”;
$username\u speedapp=“root”;
$password\u speedapp=“password”;
$mydb=mysqli\u connect($hostname\u mydb、$username\u mydb、$password\u mydb)或trigger\u error(mysql\u error(),E\u USER\u error);
$sql=“插入人员(术语、详细信息)值($term、$details)”;
if(mysqli_查询($mydb,$sql)){
$newrecord=“插入成功”;
}否则{
echo“Error:”.$sql.
“.mysqli_Error($mydb);
}
mysqli_close($mydb);
您的代码有很多错误
让我们一步一步来:
<?php
if (isset($_POST['submitted'])){
include('Connections/connect.php');
$term= $_POST['term'];
$details= $_POST['details'];
您在此处定义查询,但不使用此查询执行任何操作
阅读php文档页面上关于执行查询的内容:
您正在此处定义变量$newrecord
,但此处没有函数。添加echo$newrecord
要回显变量值$newrecord
:
那么您在connect.php中没有使用正确的变量
<?php
$hostname_speedapp = "localhost";
$database_speedapp = "mydb";
$username_speedapp = "root";
$password_speedapp = "password";
$mydb= mysqli_connect($hostname_mydb, $username_mydb, $password_mydb) or trigger_error(mysql_error(),E_USER_ERROR);
?>
您正在定义$hostname\u speedapp
并在mysqli\u connect
中使用$hostname\u mydb
将其更改为$hostname\u speedapp
等。。将连接字符串更改为:
$mydb=mysqli\u connect($hostname\u speedapp、$username\u speedapp、$password\u speedapp)
您没有在connectionstring中选择数据库。您正在使用数据库名定义一个名为:$database\u speedapp
的变量,但您从未使用过它
将您的连接字符串更改为:$mydb=mysqli\u connect($hostname\u speedapp、$username\u speedapp、$password\u speedapp、$database\u speedapp)
,然后您就可以添加这个了
$sql = "INSERT INTO people (term,details) VALUES ($term,$details)";
if (mysqli_query($mydb, $sql))
{
echo "New record created successfully";
}
else
{
echo "Error: " . $sql . "<br>" . mysqli_error($mydb);
}
和page1.php的顶部
include("connect.php");
if (isset($_POST['submit'])){
include('Connections/connect.php');
$term= $_POST['term'];
$details= $_POST['details'];
$sql = "INSERT INTO people (term,details) VALUES ('".$term."' , '".$details."')";
if ($mydb->query($sql) === TRUE) { //can use connected database $mydb
$newrecord = "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $mydb->error;
}
}
?>
<form id="form1" name="form1" method="post" action="">
<p>
<label for="term"></label>
<input type="text" name="term" id="term" />
</p>
<p>
<label for="details"></label>
<input type="text" name="details" id="details" />
</p>
<p>
<input type="submit" name="button" id="button" value="Submit" />
</p>
</form>
<p>
<?php
if(isset($newrecord)){
echo "<h3>$newrecord</h3>";
}
?>
Connect.php
<?php
$hostname_speedapp = "localhost";
$database_speedapp = "mydb";
$username_speedapp = "root";
$password_speedapp = "password";
$mydb= mysqli_connect($hostname_mydb, $username_mydb, $password_mydb) or trigger_error(mysql_error(),E_USER_ERROR);
?>
<?php
$hostname_speedapp = "localhost";
$database_speedapp = "mydb";
$username_speedapp = "root";
$password_speedapp = "password";
$mydb= mysqli_connect($hostname_speedapp, $username_speedapp, $password_speedapp,$database_speedapp) or trigger_error(mysql_error(),E_USER_ERROR);
?>
page1.php
if (isset($_POST['submit'])){
include('Connections/connect.php');
$term= $_POST['term'];
$details= $_POST['details'];
$sql = "INSERT INTO people (term,details) VALUES ('".$term."' , '".$details."')";
if ($mydb->query($sql) === TRUE) { //can use connected database $mydb
$newrecord = "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $mydb->error;
}
}
?>
<form id="form1" name="form1" method="post" action="">
<p>
<label for="term"></label>
<input type="text" name="term" id="term" />
</p>
<p>
<label for="details"></label>
<input type="text" name="details" id="details" />
</p>
<p>
<input type="submit" name="button" id="button" value="Submit" />
</p>
</form>
<p>
<?php
if(isset($newrecord)){
echo "<h3>$newrecord</h3>";
}
?>
if(isset($\u POST['submit'])){
包括('Connections/connect.php');
$term=$_POST['term'];
$details=$_POST['details'];
$sql=“插入人员(术语、详细信息)值(““$term.”、“$details.”);
如果($mydb->query($sql)==TRUE){//可以使用连接的数据库$mydb
$newrecord=“新记录创建成功”;
}否则{
echo“Error:”.$sql.“
”$mydb->Error;
}
}
?>
数据库的插入位置在哪里?您只是定义查询字符串,而不是在任何地方执行查询。查看MySQLi
扩展名上的信息。另外,您的查询对SQL注入是开放的,所以您应该看到这个问题中有这么多错误,这一点都不好笑。另外,还有一些没人能抓到的东西。Facepalmit给出了以下错误:警告:mysqli_query()至少需要2个参数,1given@i_user检查你的失踪lines@i_user选中编辑1。并检查数据库名称是否为correct@i_user很高兴提供帮助:)@i_user确保您选择了一个数据库,并且连接脚本和插入查询脚本都在同一个页面中您是唯一获得此信息的人。不知道为什么它被如此严重地否决了。我给了你一票。你确实漏掉了一些东西,但这不应该成为你的答案毫无理由地获得如此多反对票的原因。没有其他人注意到这一点,我不知道为什么他们甚至因为没有得到所有东西而获得了选票,显然也错过了一些。我确实错过了OP没有包括实际的sql execute的事实,但我想知道为什么会有这么多的反对票-感谢upvote@Fred ii-:)看着其他人开始改变他们的答案lol-给点时间;-)就我个人而言,我不会提交答案。这个问题有太多的错误,真的不好笑。没有什么会引起注意的。另外,想想如果有人在输入中什么都不输入会发生什么;-)更不用说让它们继续接受SQL注入了。
include("connect.php");
<?php
$hostname_speedapp = "localhost";
$database_speedapp = "mydb";
$username_speedapp = "root";
$password_speedapp = "password";
$mydb= mysqli_connect($hostname_speedapp, $username_speedapp, $password_speedapp,$database_speedapp) or trigger_error(mysql_error(),E_USER_ERROR);
?>
if (isset($_POST['submit'])){
include('Connections/connect.php');
$term= $_POST['term'];
$details= $_POST['details'];
$sql = "INSERT INTO people (term,details) VALUES ('".$term."' , '".$details."')";
if ($mydb->query($sql) === TRUE) { //can use connected database $mydb
$newrecord = "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $mydb->error;
}
}
?>
<form id="form1" name="form1" method="post" action="">
<p>
<label for="term"></label>
<input type="text" name="term" id="term" />
</p>
<p>
<label for="details"></label>
<input type="text" name="details" id="details" />
</p>
<p>
<input type="submit" name="button" id="button" value="Submit" />
</p>
</form>
<p>
<?php
if(isset($newrecord)){
echo "<h3>$newrecord</h3>";
}
?>