0

如果选项值组合框中的已发布值包含撇号,我会遇到问题。该值在撇号处被截断。这些值来自一个带有撇号的数据库。

我理解为什么会发生这种情况,但我不知道如何解决它。有任何想法吗?提前致谢。

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>";
4

3 回答 3

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 的行之后,建议不要有任何空闲空间;

于 2012-11-08T17:39:43.307 回答
1

您的代码非常混乱,并且您不清楚您的问题是否在发布或检索数据时遇到问题,在将数据mysqli_real_escape_string()发布到数据库之前,始终使用转义引号,并清理您的数据,此外停止使用mysql_(),使用mysqli_()PDO因为mysql_()不再由 PHP 社区维护..

在这里阅读大红框

而是使用这些mysqli_()

于 2012-11-08T17:19:02.733 回答
0

你可以试试 htmlspecialchars 吗?这应该让你做你想做的事。

http://php.net/manual/en/function.htmlspecialchars.php

于 2012-11-08T17:16:27.173 回答