使用MySQL select时截断字符串


Trunction of string when using MySQL select

我使用MySQL select提取存储在数据库中的文本,使其以表格形式显示,以便进行编辑。

当表单设置为时,数据库中的字符串在第一个空格处被截断,因此"Foo Bar"将显示为"Foo"。使用标记时不会发生这种情况。

我已经确保文本字段足够大,可以容纳整个字符串,并且charter的数量不受限制。

整个单词都存储在数据库中,不会发生截断。我将类型设置为varchar(30),这足够存储整个单词的空间。我也尝试过将类型改为文本,但我仍然有问题。

我找不到解决方案。有人知道为什么会发生这种情况吗?

 <?php echo "<input type='"text'" name='"title[" . $row["id"] . "]'" value=" . $row["title"] . ">"; ?>

您应该提供从php页面生成的HTML示例。最有可能的是,您的值字符串没有被引用,例如,您的HTML表单看起来像:

<input type=text value=Foo Bar>

而不是

<input type=text value="Foo Bar">

这将产生你所看到的的效果


更新:根据您在评论中的示例,您确实缺少引号:

有问题的旧代码(属性值周围缺少引号)

<?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没有。

如果没有相关代码,这只是猜测,但您是否在不使用引号的情况下设置表单输入值属性?

例如,你在这样做吗?

<input type="text" value=<? echo $value; ?> name="formInput" />

而不是正确的语法,这是哪一个?

<input type="text" value="<? echo $value; ?>" name="formInput" />