我试图将数据库中的数据导入文本字段:
$fothersq=("SELECT others FROM january");
$fothers=mysql_query($fothersq);
<input type="text" placeholder="0" name="febothers" size="11" value="<?php if(@$fothers){echo htmlentities(@$fothers);} ?>">
但我在文本字段中遇到了此错误。
警告:htmlentities()期望参数1为 字符串,资源在 C:\ xampp \ htdocs \ CashFlow \ febprev.php 中给出 在线 116
也在另一个文本字段中我使用此编码来测试:
<input type="text" name="febbonus" size="11" placeholder="0" value="<?php if(@$fbonus){echo (@$fbonus);} ?>">
我收到了这个错误:
资源ID#7
任何想法?
答案 0 :(得分:2)
错误告诉您究竟是什么问题:
警告:htmlentities()要求参数1为字符串,资源 在第116行的C:\ xampp \ htdocs \ CashFlow \ febprev.php中给出
而且:
资源 ID#7
这两个错误都告诉您mysql_query
返回资源。此时它不是一个字符串。您需要来处理该资源&amp;采取行动。试试这个。
$fothersq=("SELECT others FROM january");
$fothers=mysql_query($fothersq);
while ($row = mysql_fetch_assoc($fothers)) {
echo sprintf('<input type="text" placeholder="0" name="febothers" size="11" value="%s">', (!empty($row['others'] ? htmlentities($row['others']) : '')));
}
另外,请注意我将<input type="text">
HTML元素放在echo
中,因为您提供的代码与直接的PHP或HTML或两者混合都没有多大意义。
编辑:根据原始海报可能会被三元运算符混淆的评论,这里是我的答案的修改版本,它将实现相同的目标,但是以稍微简单的方式:
$fothersq=("SELECT others FROM january");
$result=mysql_query($fothersq);
while ($row = mysql_fetch_assoc($result)) {
$fothers = '';
if (!empty($row['others']) {
$fothers = htmlentities($row['others']);
}
echo '<input type="text" placeholder="0" name="febothers" size="11" value="' . $fothers . '">';
}
答案 1 :(得分:1)
因为你运行了这个
$fothers=mysql_query($fothersq);
现在$fothers
不会是字符串。它将是resource
但是你将$fothers
传递给期望字符串的htmlentities()
。
答案 2 :(得分:1)
要纠正的要点:
htmlentities()函数将字符转换为HTML实体。因此,它需要一个字符串,在您的情况下,您的传递资源。
您获取Resource id #7
是因为您没有抓取任何内容。执行后,使用mysql_fetch_array
获取行。
试试这个:
$fothersq=("SELECT others FROM january");
$fothers=mysql_query($fothersq);
while ($fetch = mysql_fetch_array($fothers)) {
?>
<input type="text" name="febothers" size="11" value="<?php echo (isset($fetch[0])) ? htmlentities("$fetch[0]") : ''?>">
<?php
}