PHP 代码使用 _POST 方法在 MySql 数据库中插入空白记录

Posted

技术标签:

【中文标题】PHP 代码使用 _POST 方法在 MySql 数据库中插入空白记录【英文标题】:PHP Code inserts Blank Records in MySql database with _POST method 【发布时间】:2013-10-16 03:43:00 【问题描述】:

当使用 _POST 方法在数据库中插入数据时,php 代码会插入空白记录,但是当我使用 _GET 时一切正常。

感谢您的提前。

<?php
$con=mysqli_connect("localhost","root","*******","student");
// Check connection
if (mysqli_connect_errno())
  
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  

$sql="INSERT INTO Student (textnames, fathername, mom, occu, homenum, paddress, offcontact, Course, District, State, pincode, emailid, dob, mobileno)
VALUES
('$_POST[textnames]','$_POST[fathername]','$_POST[mom]','$_POST[occu]','$_POST[homenum]','$_POST[paddress]','$_POST[offcontact]','$_POST[Course]','$_POST[District]','$_POST[State]','$_POST[pincode]','$_POST[emailid]','$_POST[dob]','$_POST[mobileno]')";

if (!mysqli_query($con,$sql))
  
  die('Error: ' . mysqli_error($con));
  
echo "Successfully Added Record";

mysqli_close($con);
?>

任何建议如何避免这种情况.....

【问题讨论】:

在您的表单标签上指定method=POST,然后使用$_POST 重试。 它有'
' 您是否尝试过先将 POST 变量分配给您自己的命名变量,然后再插入这些命名变量? 我相信这里已经回答了这个问题:***.com/questions/9617982/… 离题了,但是这个查询非常不安全。
【参考方案1】:

一个好的经验法则是使用 phpinfo 检查 PHP 变量的可用性(这与您的 Web 服务器配置有关)。

尝试添加:

echo phpinfo();
exit;

就在你之前

 if (!mysqli_query($con,$sql))

【讨论】:

【参考方案2】:

原因是你做的帖子很可能和get不一样

'$_POST[textnames]'// is wrong
'$_POST["textnames"]'// is correct

和所有其他人一样。您必须使用引号来获取这些值而没有引号您的索引像textnames 对于GETPOST 都是不正确的

【讨论】:

【参考方案3】:

尝试将 $_POST 初始化为局部变量并使用如下查询

    <?php
$a=$_POST['textname'];
$b=$_POST['fathername'];
$c=$_POST['mom'];'
$d=$_POST['occu'];
$e=$_POST['homenum'];
$f=$_POST['paddress'];
$g=$_POST['offcontact'];
$i=$_POST['Course'];
$j=$_POST['District'];
$k=$_POST['State'];
$l=$_POST['pincode'];
$m=$_POST['emailid'];
$o=$_POST['dob'];
$p=$_POST['mobileno']
$con=mysqli_connect("localhost","root","*******","student");
// Check connection
if (mysqli_connect_errno())
  
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  

$sql="INSERT INTO Student (textnames, fathername, mom, occu, homenum, paddress, offcontact, Course, District, State, pincode, emailid, dob, mobileno) VALUES('$a','$b','$c','$d','$e','$f','$g','$i','$j','$k','$l','$m','$o','$p')";

if (!mysqli_query($con,$sql))
  
  die('Error: ' . mysqli_error($con));
  
echo "Successfully Added Record";

mysqli_close($con);
?>

【讨论】:

不要忘记添加
【参考方案4】:

首先检查你的表单是否发送值

if(isset($_POST["submit"]))
     
       Your insert query here

      
 also in form try using following code
 <form methode = "POST" action = "">
 </form>

【讨论】:

我已经检查过它是否对我有用,如果您没有提交按钮,请尝试在帖子中使用一些不同的值,例如if(isset($_POST["textnames"])) 还尝试使用双引号插入值,例如。 $_POST["testnames"]【参考方案5】:

它适用于 _REQUEST 我认为它会做

<?php
$con=mysqli_connect("localhost","root","********","student");
// Check connection
if (mysqli_connect_errno())
  
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  

$sql="INSERT INTO Student (textnames, fathername, mom, occu, homenum, paddress, offcontact, Course, District, State, pincode, emailid, dob, mobileno)
VALUES
('$_REQUEST[textnames]','$_REQUEST[fathername]','$_REQUEST[mom]','$_REQUEST[occu]','$_REQUEST[homenum]','$_REQUEST[paddress]','$_REQUEST[offcontact]','$_REQUEST[Course]','$_REQUEST[District]','$_REQUEST[State]','$_REQUEST[pincode]','$_REQUEST[emailid]','$_REQUEST[dob]','$_REQUEST[mobileno]')";
if (!mysqli_query($con,$sql))
  
  die('Error: ' . mysqli_error($con));
  
echo "Successfully Added Record";

mysqli_close($con);
?>

【讨论】:

【参考方案6】:

您可以像这样更改您的代码。关键是您在访问 post 变量时错过了单引号。

<?php
$con=mysqli_connect("localhost","root","*******","student");
// Check connection
if (mysqli_connect_errno())
  
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  

$sql="INSERT INTO Student (textnames, fathername, mom, occu, homenum, paddress, offcontact, Course, District, State, pincode, emailid, dob, mobileno)
VALUES
('".$_POST['textnames']."','".$_POST['fathername']."','".$_POST['mom']."','".$_POST['occu']."','".$_POST['homenum']."','".$_POST['paddress']."','".$_POST['offcontact']."','".$_POST['Course']."','".$_POST['District']."','".$_POST['State']."','".$_POST['pincode']."','".$_POST['emailid']."','".$_POST['dob']."','".$_POST['mobileno']."')";

if (!mysqli_query($con,$sql))
  
  die('Error: ' . mysqli_error($con));
  
echo "Successfully Added Record";

mysqli_close($con);

    


?>

【讨论】:

以上是关于PHP 代码使用 _POST 方法在 MySql 数据库中插入空白记录的主要内容,如果未能解决你的问题,请参考以下文章

mysql 导入sql

PHP 使用$_POST[''] 取不到值,自己刚开始自学,求大神赐教!

PHP代码未将HTML连接到MYsql数据库[关闭]

如何在php网页中通过一个表单让使用者输入数据提交后把输入的数据传递到mysql数据库中?

php代码 potst 提交的问题?

PHP $_POST 变量