使用 PHP PDO 在 DB 中保存来自文本框的值(从 DB 中获取值时显示的值)

Posted

技术标签:

【中文标题】使用 PHP PDO 在 DB 中保存来自文本框的值(从 DB 中获取值时显示的值)【英文标题】:Save value from textbox(where value is displayed on being fetched from DB) in DB using PHP PDO 【发布时间】:2016-04-14 01:21:02 【问题描述】:

我有一个包含多个文本框的表单。对于这样一个文本框,我从 DB 中获取数据并使用 echo 语句在文本框中显示值。

但是,填满整个表单并点击提交后,除此之外的所有文本框中都有值。

我正在使用 PDO 并将值保存在 mysql Db 中。我对 php 很陌生,无法弄清楚!

我的代码:

<?php
if(isset($_POST["submit"])=="Save") 
   $RestName = $_POST['username'];
   if (empty($RestName))
      echo "Restname is empty";
   else
      echo "Restname is not empty";


?>

<form role="form" action="" method="post">
<?php

$STM = $conn ->prepare("SELECT * FROM vendorusers WHERE vd_user_email=:email");

$STM->bindParam(':email',$email);
$STM->execute();
$rows = $STM->fetchAll();

foreach ($rows as $row)  
  $username = $row['vd_user_name'];
?>

<input type="text" class="form-control"  id = "username" name = "username" value= "<?php echo $username; ?>">

<?php   ?>

<button type="submit" name="submit" id="submit" value = "Save" class="btn btn-primary pull-left">Save</button>
</form>

此代码显示“Restname 为空”;

如何在提交期间获取值(从数据库中获取并显示在文本框中)?

【问题讨论】:

【参考方案1】:

请将输入 name='username' 的名称更改为 name='username[]'。在 name 中使用数组以获得多个结果。

【讨论】:

【参考方案2】:

使用isset 的测试是错误的 - 您需要将其更改为if( isset( $_POST['submit'] ) &amp;&amp; $_POST['submit']=='Save' ) 等或使用empty,因为这会隐含isset,如下所示。

<?php

    $RestName = !empty( $_POST["submit"] ) && $_POST["submit"]=='Save' && !empty( $_POST['username'] ) ? $_POST['username'] : false;
    echo $RestName ? "Restname is empty" : "Restname is not empty";
?>

【讨论】:

谢谢...但是你能告诉我如何在提交时填充 $Restname 中的值吗? Cz value 中的 echo 语句是在屏幕上显示该值,而不是将其存储在 value 字段中。 我不确定我是否理解 - 如果 $restname` 变量存在于 POST 数组中,则在上述语句中设置,否则设置为 false。

以上是关于使用 PHP PDO 在 DB 中保存来自文本框的值(从 DB 中获取值时显示的值)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用来自 Ajax 变量的 PHP PDO 处理许多 WHERE 子句

php和mysql pdo查询

保存添加到 DOM 中的文本框的文本

在 php 中使用 PDO 类获取 num_rows 的问题

PHP + MSSQL 使用 PDO,命名参数不是“?”

PHP:PDO fetch() 不显示结果