使用 MySQL 选择时截断字符串
Posted
技术标签:
【中文标题】使用 MySQL 选择时截断字符串【英文标题】:Trunction of string when using MySQL select 【发布时间】:2012-08-25 10:20:48 【问题描述】:我使用 mysql select 提取存储在我的数据库中的文本,以便将其显示在表单中以便可以对其进行编辑。
当表单设置为数据库中保存的字符串时,在第一个空格处被截断,因此“Foo Bar”将显示为“Foo”。使用标签时不会发生这种情况。
我已确保文本字段足够大以容纳整个字符串,并且章程的数量不受限制。
整个单词都存储在数据库中,不会发生截断。我将类型设置为 varchar(30),它有足够的空间来存储整个单词。我也尝试将类型更改为文本,但仍然有问题。
我无法在任何地方找到解决方案,有人知道为什么会发生这种情况吗?
<?php echo "<input type=\"text\" name=\"title[" . $row["id"] . "]\" value=" . $row["title"] . ">"; ?>
【问题讨论】:
很难判断该错误可能来自何处,因为您尚未发布任何代码。通常这不会发生就是我能说的。 请向我们提供SSCCE。没有任何代码很难帮助你。 【参考方案1】:您应该提供从您的 php 页面生成的 html 示例。很可能,您的值字符串没有被引用,例如您的 HTML 表单如下所示:
<input type=text value=Foo Bar>
而不是
<input type=text value="Foo Bar">
这将产生您所看到的效果
更新:根据您在评论中的示例,您确实缺少引号:
有问题的旧代码(value 属性值周围缺少引号):
<?php echo "<input type=\"text\" name=\"title[" . $row["id"] . "]\"
value=" . $row["title"] . ">"; ?>
固定代码:
<?php echo "<input type=\"text\" name=\"title[" . $row["id"] . "]\"
value=\"" . $row["title"] . "\">"; ?>
请注意,您已经正确引用了 name
属性,但没有正确引用 value
。
【讨论】:
我只是看了一下,它没有被引用。使用 php 回显时很难分辨。【参考方案2】:没有相关代码,这只是一个猜测,但是你是在设置表单输入值属性时不使用引号吗?
例如,你这样做吗?
<input type="text" value=<? echo $value; ?> name="formInput" />
而不是正确的语法,这是什么?
<input type="text" value="<? echo $value; ?>" name="formInput" />
【讨论】:
以上是关于使用 MySQL 选择时截断字符串的主要内容,如果未能解决你的问题,请参考以下文章