【问题标题】:How to post <input> value to database如何将 <input> 值发布到数据库
【发布时间】:2016-07-07 13:50:12
【问题描述】:

当我单击提交按钮时,我的 &lt;input&gt; 值不会发布到我的数据库中。我找不到错误。请帮忙。

 <?php
    echo "<form action=Display.php method=post>";
    echo "<td>" . $fiberexcel['Engineer9'] ." </td>";
    echo "<td>" . $fiberexcel['AM10'] ." </td>";
    echo "<td>" . "<input type=date name=A12 value=" . $fiberexcel['Quotation11'] ." </td>";

    $A6 = date("Y-m-d");
    $ExpectDateQuotation12 = strtotime($ReqDate4."+ 10 weekday");
    echo "<td>" . date("Y-m-d",$ExpectDateQuotation12) . "</td>";
    $ExpectDateQuotation12 = date("Y-m-d",$ExpectDateQuotation12);
    $UpdateQuery = "UPDATE `fiberexcel` SET `ExpectDateQuotation12` =
    '$ExpectDateQuotation12' WHERE `fiberexcel`.`SiteID0` = '$A1';";
    mysqli_query($conn, $UpdateQuery);

    echo "<td>" . "<input type=date name=A14 value=" . $fiberexcel['ApprovalJFSRequest13'] ." </td>";
    ?>

    echo "<td>" . "<input type=hidden name=hidden value=" .$fiberexcel['SiteID0'] ." </td>";
    //echo "</tr>";
    echo "<td>" . "<input type=submit name=update value=update>". "</td>";
    echo "</form>";

这是我的更新按钮发布功能:

    if(isset($_POST['update'])){
       $UpdateQuery = "UPDATE `fiber`.`fiberexcel` SET Quotation11='$_POST[A12]' ,  ApprovalJFSRequest13='$_POST[A14]' WHERE `fiberexcel`.`SiteID0`='$_POST[hidden]'";

       mysqli_query($conn, $UpdateQuery);
    };

【问题讨论】:

  • 不要将原始帖子数据放入像"UPDATE `fiber`.`fiberexcel` SET Quotation11='$_POST[A12]' , ApprovalJFSRequest13='$_POST[A14]' WHERE `fiberexcel`.`SiteID0`='$_POST[hidden]'"这样的sql语句中。这样容易出现sql注入。
  • 即使我添加这个发布功能也不会发布到数据库 "UPDATE fiberexcel SET Quotation11='$_POST[A12]' , ApprovalJFSRequest13='$_POST[A14]' WHERE fiberexcel.SiteID0='$ _POST[隐藏]'"`.
  • 并且不要在 PHP 中使用`,而是使用'。 PHPMyAdmin 为您提供的查询不在 PHP 中工作
  • 好的。我将 ` 更改为 ' 仍然无法正常工作:(
  • @JRsz 您在此脚本中指的是哪些反引号? php可以执行反引号列和表名。

标签: php html sql


【解决方案1】:

能否请您在浏览器中检查您的 HTML 输出。

我注意到您的代码中存在一些问题

-您错过了每个属性值的引号 前任: 回声“”;

会像 回声“”;

  • 您的 HTML 代码也有错误, 前任: 回声“”。 ""; 在这里你错过了关闭输入标签,

您的代码如下所示,

<?php
echo "<form action='Display.php' method='post'>";

echo "<td>" . $fiberexcel['Engineer9'] ." </td>";
echo "<td>" . $fiberexcel['AM10'] ." </td>";
echo "<td>" . "<input type='date' name='A12' value='" . $fiberexcel['Quotation11'] ."'></td>";

$A6 = date("Y-m-d");
$ExpectDateQuotation12 = strtotime($ReqDate4."+ 10 weekday");
echo "<td>" . date("Y-m-d",$ExpectDateQuotation12) . "</td>";
$ExpectDateQuotation12 = date("Y-m-d",$ExpectDateQuotation12);
$UpdateQuery = "UPDATE `fiberexcel` SET `ExpectDateQuotation12` =
'$ExpectDateQuotation12' WHERE `fiberexcel`.`SiteID0` = '$A1';";
mysqli_query($conn, $UpdateQuery);

echo "<td>" . "<input type='date' name='A14' value='" . $fiberexcel['ApprovalJFSRequest13'] ."'> </td>";
echo "<td>" . "<input type='hidden' name='hidden' value='" .$fiberexcel['SiteID0'] ."'> </td>";
//echo "</tr>";
echo "<td>" . "<input type='submit' name='update' value='update'>". "</td>";
echo "</form>";
?>

【讨论】:

  • 能否分享一下您浏览器中的 HTML 源代码以及表格结构
  • 是的。当然。 @mukesh //同样,表中有 67 列
  • @Sugs 谢谢,但我没有在你的 html 中找到表格
  • 我在 php.ini 中给出的表格。 echo "
    ";在上面的代码中
  • 站点 ID 站点名称 站点地址 项目类型 实施请求日期 目标完成日期 供应商 ESR编号 联系方式 工程师 客户经理 发送给承包商进行报价 预计日期 请求 JFS 的 SO 批准
【解决方案2】:

您的代码中有一些语法错误。请检查 php 关闭标签并输入关闭标签。试试这个..

<?php
echo "<form action='Display.php' method='post'>";
echo "<td>" . $fiberexcel['Engineer9'] ." </td>";
echo "<td>" . $fiberexcel['AM10'] ." </td>";
echo "<td><input type='date' name='A12' value=" . $fiberexcel['Quotation11'] ."/></td>";

$A6 = date("Y-m-d");
$ExpectDateQuotation12 = strtotime($ReqDate4."+ 10 weekday");
echo "<td>" . date("Y-m-d",$ExpectDateQuotation12) . "</td>";
$ExpectDateQuotation12 = date("Y-m-d",$ExpectDateQuotation12);
$UpdateQuery = "UPDATE `fiberexcel` SET `ExpectDateQuotation12` =
'$ExpectDateQuotation12' WHERE `fiberexcel`.`SiteID0` = '$A1';";
mysqli_query($conn, $UpdateQuery);

echo "<td><input type='date' name='A14' value=" . $fiberexcel['ApprovalJFSRequest13'] ." /></td>";


echo "<td><input type='hidden' name='hidden' value=" .$fiberexcel['SiteID0'] ." /></td>";
//echo "</tr>";
echo "<td><input type='submit' name='update' value='update'></td>";
echo "</form>";

?> 

【讨论】:

  • 语法错误。完毕。仍然没有存储在数据库中
  • 尝试在输入标签中加上引号 (') 来表示类型和名称。我已经编辑了我的代码。请检查。
  • 是的。我添加了(')并尝试了。它没有显示任何错误。同时没有结果:(
  • 天啊!!你能分享截图看看你得到了什么结果
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-13
  • 2019-11-23
  • 1970-01-01
  • 2011-12-31
  • 1970-01-01
  • 2021-10-22
  • 1970-01-01
相关资源
最近更新 更多