PHP MySQL 中的多个 htmlspecialchars 字符串


More than one htmlspecialchars string in PHP MySQL

>我在MySQL中有一个表,其中有一行包含此数据。

  • ID = 187
  • 友好名称=我不喜欢芥末
  • 文件类型 = exe

下面的第一个代码块运行良好,并将我不喜欢的芥末文本回显到 HTML 表单中。 同样,如果我将$row['friendlyname']更改为$row['filetype'],则会回显文本 exe。 一切都很好,还没有问题。

<?php
$con = mysqli_connect('domain','user','pass','db');
$sql = "select * from installers where id=187";
$result = mysqli_query($con,$sql);
while($row=mysqli_fetch_array($result))
$friendlyname = htmlspecialchars(" ".$row['friendlyname']." ",ENT_QUOTES);
$con->close();
?>
<input type='text' value='<?php echo $friendlyname; ?>'>



我遇到的问题是,如果我尝试同时回显$row['friendlyname']$row['filetype'],则只会回显首先列出的变量。 例如,在下面的代码中,$row['friendlyname']列在 $row['filetype'] 之前。 在此示例中,只会回显$row['friendlyname']我不喜欢芥末)。 同样,如果$row['filetype']列在 $row['friendlyname'] 之前,则只回显$row['filetype']exe),而第二个其他 HTML 输入表单为空。

<?php
$con = mysqli_connect('domain','user','pass','db');
$sql = "select * from installers where id=187";
$result = mysqli_query($con,$sql);
while($row=mysqli_fetch_array($result))
$friendlyname = htmlspecialchars(" ".$row['friendlyname']." ",ENT_QUOTES);
$filetype= htmlspecialchars(" ".$row['filetype']." ",ENT_QUOTES);
$con->close();
?>
<input type='text' value='<?php echo $friendlyname; ?>'>
<input type='text' value='<?php echo $filetype; ?>'>



注1:输入类型表单的顺序无关紧要。 我排除了这个问题。
注意2:如果我用我尝试回显的文本替换$row['friendlyname']$row['filetype'],那么它可以工作(下面的代码)。 所以,这肯定是这些$row变量的东西。

<?php
$con = mysqli_connect('domain','user','pass','db');
$sql = "select * from installers where id=187";
$result = mysqli_query($con,$sql);
while($row=mysqli_fetch_array($result))
$friendlyname = i don't like mustard;
$filetype= exe;
$con->close();
?>
<input type='text' value='<?php echo $friendlyname; ?>'>
<input type='text' value='<?php echo $filetype; ?>'>

您尚未将括号添加到循环while因此仅填充第一条记录。

此块:

while($row=mysqli_fetch_array($result))
$friendlyname = htmlspecialchars(" ".$row['friendlyname']." ",ENT_QUOTES);
$filetype= htmlspecialchars(" ".$row['filetype']." ",ENT_QUOTES);

应该是:

while($row=mysqli_fetch_array($result)){
   $friendlyname = htmlspecialchars(" ".$row['friendlyname']." ",ENT_QUOTES);
   $filetype= htmlspecialchars(" ".$row['filetype']." ",ENT_QUOTES);
}