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

标签 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 ——并且有效 ——

但是,当将其重新输出到我的 Web 主机时,它会从 SQL 数据库获取数据,该数据在最大长度截止字中间停止。

我想要它,以便如果它达到最大长度,最后一个单词就会被删除。

可以在输入 SQL 表时完成吗?

或者甚至可能在输出回我的网络主机的 PHP 文件中?,例如这里:

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

或者也许在这里的 $params 中?

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

非常感谢!

最佳答案

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

    return strrev($revertedCutString);
}

DEMO

关于php - 如果达到 maxlength,则删除 SQL 行中的最后一个单词? (PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30584625/

相关文章:

php - 您是否建议不要使用文本文件而不是数据库?

MYSQL 内连接(SQL 代码中的 If 语句?)

c# - Crystal 报表 : Missing Parameter Values

mysql - 如何在mysql中使用COUNT和INNER JOIN中的 "DELETE"?

php - Apache 或 PHP 替换主机名

javascript - PHP 和 Javascript 中密码匹配的正则表达式

php - ZF2 : how do I get ServiceManager instance from inside the custom class

.net - XML 映射 - XSLT 还是代码?

xml - 在 VBA 中解析 XML 响应数据

java - log4j.xml中的参数值解释