【问题标题】:PHP and SQL one page insert into databasePHP和SQL一页插入数据库
【发布时间】:2013-08-13 12:42:57
【问题描述】:

我在提交按钮上编写了一个带有表单的 PHP 页面,我将操作设置为 PHP 表单页面。

 <form id="form1" method="post" action="../control_lbs/lbs_trace.php">

INSERT INTO 是数据库的基本 sql 加载信息。

我每次打开页面都会向行发送空白信息时遇到的问题。有没有我可以防止这种情况发生?

 $sql = "INSERT INTO lbs_trace_etrack (lbs_msisdn, lbs_req_by, lbs_date_req,     
 lbs_reason, lbs_station, lbs_cas, lbs_traced_by) 
       VALUES     
    ('$_POST[lbs_msisdn]','$_POST[lbs_req_by]','$_POST[lbs_date_req]','$_POST[lbs_reason]'
 ,'$_POST[lbs_station]','$_POST[lbs_cas]','$_POST[lbs_traced_by]')";

以上是我的PHP动作代码

这是我使用的新代码和完整代码

 if ($con = mysql_connect($host, $username, $password)) {
    if ( !empty($_POST["send"])) {

       $sql = "INSERT INTO lbs_trace_etrack (lbs_msisdn, lbs_req_by, lbs_date_req,    lbs_reason, lbs_station, lbs_cas, lbs_traced_by) 
       VALUES    ('$_POST[lbs_msisdn]','$_POST[lbs_req_by]','$_POST[lbs_date_req]','$_POST[lbs_reason]','$_POST[lbs_station]','$_POST[lbs_cas]','$_POST[lbs_traced_by]')";
        if (mysql_query($sql, $con)) {
            $insertSuccessful = true;
        } else {
            echo $sql;
            echo "\n" . mysql_error($con);
            echo "mysql err no : " . mysql_errno($con);
        }

在刷新或页面输入时,它仍然给我关于数据库的空白信息

【问题讨论】:

  • 在您的页面上添加一个检查,以查看在运行 SQL 之前是否已提交表单。
  • 像这样修改代码.. if(isset($_POST['submit_button_name']){ /*在此处插入查询*/ }
  • 把你的代码放在这样的条件中。其中 Submit1 是表单提交按钮的名称。if ( isset( $_POST['Submit1'] ) ) { }
  • $con 在 mysql_query 中不需要。如果您以程序样式使用 mysqli,则需要它(并且切换到 mysqli 是一件好事)。

标签: php sql


【解决方案1】:

您需要使用isset() 来查看是否设置了$_POST 变量。我在下面的例子中使用了$_POST,我建议你给提交按钮起一个名字(比如example)并使用isset($_POST['example'])

if( isset($_POST) ){
    $sql = "INSERT INTO lbs_trace_etrack (lbs_msisdn, lbs_req_by, lbs_date_req, lbs_reason, lbs_station, lbs_cas, lbs_traced_by)
            VALUES(
                '".$_POST['lbs_msisdn']."',
                '".$_POST['lbs_req_by']."',
                '".$_POST['lbs_date_req']."',
                '".$_POST['lbs_reason']."',
                '".$_POST['lbs_station']."',
                '".$_POST['lbs_cas']."',
                '".$_POST['lbs_traced_by']."'
            )";
  echo $sql; // echo it to see if it has any values
  // print_r($_POST); // in case the query is still empty, uncomment this. It will show you the values in the POST array
}

【讨论】:

  • 我已更改,如我的编辑所示,但它仍然向数据库发送空白
  • 这可能与引号有关,我已将答案更新为更易读的格式。我还添加了回声,这样您就可以看到实际的查询结果。如果它有空值,则 post 数组没有任何值。
  • 我建议您找出不同之处,而不是复制/粘贴我的代码,以供将来参考
  • 我想我很困惑,如果我从 '".$_POST['lbs_traced_by']."' 表单中发布值的方式是正确的,那么你所显示的具体到在该文本字段中查找并没有该点,它没有在该文本字段中查找已完成的表单?
  • 我不明白你刚刚发布的内容。我建议您四处寻找有关“字符串中的变量”的信息
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-08
  • 2020-05-22
  • 1970-01-01
  • 2012-02-29
  • 1970-01-01
  • 2017-04-29
相关资源
最近更新 更多