仅返回前500个字符的文字

时间:2016-12-08 01:37:38

标签: php mysql

我遇到的问题是我无法选择每个帖子的前500个字符。 (帖子存储在MySQL数据库中)。我现在的代码是:

$link = mysqli_connect( 'localhost', 'jfairbanks_dbuser', 'password' );
mysqli_select_db( $link, 'jfairbanks_database' );
$results = mysqli_query( $link, "SELECT post FROM Users where verified = 1 LIMIT 0 , 10" ); //this displayes all the posts that have been verified
while( $record = mysqli_fetch_assoc( $results ) ) {
 $post = $record['post'];
 print $post;
}
  mysqli_free_result( $results );
mysqli_close( $link );
?>

该代码选择所有经过验证并且不错的帖子中的所有字符,但我需要限制显示的帖子的长度。 (我只想看到前500个字符)。

我尝试使用LEFT(post, 500)等其他内容,但这不起作用。

2 个答案:

答案 0 :(得分:1)

你需要的是mysql的LEFT功能

SELECT LEFT(post,500) AS post FROM Users where verified = 1 LIMIT 0 , 10

在你发表评论之前,我甚至都不知道PHP有左功能?或许这是你写的东西?在PHP中使用子字符串的常用方法是使用substr函数。但是在mysql中使用子字符串会更有效,因为传输的数据更少。

另请注意添加AS post以将生成的列别名发布,以便可以在PHP代码中检索它。

答案 1 :(得分:0)

正如我在评论中提到的,您需要在MySQL中使用LEFT()函数后为您的字段提供别名。

您的查询如下所示:SELECT LEFT(post,500) AS post FROM Users ...

通过使用post对其进行别名,您现在可以像以前一样在关联数组中访问它:

$post = $record['post'];

在sql查询中没有别名时,数组没有post的键,并抛出您收到的异常。