如果包含撇号,我遇到选项值组合框中的已发布值的问题。该值在撇号处被截断。这些值来自一个数据库,在那里他们愉快地坐着撇号。
我明白为什么会这样,但我不知道如何解决这个问题。有任何想法吗?提前谢谢。
echo "<tr><td>Location:</td>";
while($row = mysql_fetch_assoc($result)) {
$dropdown_location .= "\r\n<option value='{$row['location']}'>{$row['location']}</option>";
}
$dropdown_location .= "\r\n</select>";
echo "<td>" . $dropdown_location . "</td> </tr>";
答案 0 :(得分:1)
您的代码非常混乱,您不清楚在发布或检索数据时是否有问题,在将数据发布到数据库之前始终使用mysqli_real_escape_string()
来转义引号,并清理您的代码数据,此外停止使用mysql_()
,使用mysqli_()
或PDO
,因为PHP社区不再维护mysql_()
..
阅读大红框here
而是使用这些mysqli_()
答案 1 :(得分:1)
你可以使用php heredoc混合html,字符串,php变量等:
http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc
$content .= <<< END
<tr><td>Location:</td>
END;
while($row = mysql_fetch_assoc($result)) {
$dropdown_location .= <<< END
<option value="$row[location]">$row[location]</option>
END;
}
$content .= <<< END
<td><select name="location">$dropdown_location</select></td></tr>
END;
echo $content;
请注意,建议在包含END和END的行之后没有任何可用空间;
答案 2 :(得分:0)
你可以试试htmlspecialchars吗? 这应该让你做你想做的事。