首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果达到最大长度,是否删除SQL行中的最后一个单词?(PHP)

问如果达到最大长度,是否删除SQL行中的最后一个单词?(PHP)
EN

Stack Overflow用户
提问于 2015-06-01 22:52:07
回答 1查看 139关注 0票数 0

我拥有的一个php脚本是将数据从XML文件提取到MySQL数据库。

它的设置如下:

代码语言:javascript
复制
$sql   = "INSERT IGNORE INTO `tablename` (columnname) VALUES ('text text text text text text $variablename text text $variablename2 text text')

$variablename和$variablename2都是从XML文件中提取的变量,具有不同的长度。

因此,我知道,如果我只是在处理PHP,我可以使用strlen或一个变体(请参阅如何将PHP中的字符串截断到与一定数量字符最接近的单词?,但我的sql数据库中的“列名”不是一个变量。

“列名”仅限于字符。我在mySQL中将这个设置为VARCHAR MAX=106 --这是可行的--

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

我想要它,这样如果它达到最大长度,最后一个单词就会被移除。

是否可以这样做,也许当输入到SQL表中时?

或者甚至可能在PHP文件中返回到我的web主机?,例如:

代码语言:javascript
复制
$rs->data_seek(0);
while($res = $rs->fetch_assoc()) {
   $a_topic = array(
   "columnname" => $res["columnname"]

或者可能在这里的$params?

代码语言:javascript
复制
  $params = array(
    'status' => $share['columnname'],

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-01 23:10:56

代码语言:javascript
复制
function cut($string, $maxLength)
{
    $revertString = strrev($string);
    $spaceRevertedPos = strpos($revertString, ' ', strlen($string)-$maxLength);
    $revertedCutString = substr($revertString, $spaceRevertedPos);

    return strrev($revertedCutString);
}

演示

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30584625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档