如果达到maxlength,则删除SQL行中的最后一个字? (PHP)

时间:2015-06-01 22:52:07

标签: php mysql xml

我的PHP脚本是将数据从XML文件提取到MySQL数据库。

设置如下:

$sql   = "INSERT IGNORE INTO `tablename` (columnname) VALUES ('text text text text text text $variablename text text $variablename2 text text')

$ variablename和$ variablename2都是从XML文件中提取的变量,并且长度各不相同。

所以,我知道,如果我只是处理PHP,我可以使用strlen或变体(请参阅How to Truncate a string in PHP to the word closest to a certain number of characters?但是我的sql数据库中的' columnname'不是变量。

' columnname'是限于人物。 我在mySQL中将它设置为VARCHAR MAX = 106 - 这是有效的 -

但是当重新输出到我的网络主机时,它会从SQL数据库获取数据,该数据在maxlength截止中间字停止。

我想要它,如果它确实达到了maxlength,那么最后一个字就被删除了。

这可能是在输入SQL表时完成的吗?

甚至可能在PHP文件中输出回我的网站主机?,例如:

$rs->data_seek(0);
while($res = $rs->fetch_assoc()) {
   $a_topic = array(
   "columnname" => $res["columnname"]

或者也许在这里的$ params?

  $params = array(
    'status' => $share['columnname'],

非常感谢!

1 个答案:

答案 0 :(得分:0)

function cut($string, $maxLength)
{
    $revertString = strrev($string);
    $spaceRevertedPos = strpos($revertString, ' ', strlen($string)-$maxLength);
    $revertedCutString = substr($revertString, $spaceRevertedPos);

    return strrev($revertedCutString);
}

DEMO