我的一些PHP字符串在传递给SQL时会消失

时间:2014-02-12 10:31:10

标签: php sql wordpress phpbb3

我创建了一个Wordpress插件,可以检测帖子何时发布,并在phpBB安装中创建主题。

由于插件的一部分,WordPress的文章的摘录被传递到phpBB的SQL数据库后的文本,跟着几个换行符和“更多”链接是一个固定链接到WordPress的帖子。

摘录+链接创建如下:

$wparticle_excerpt = get_the_excerpt()."<br /><br /><a href=\"".get_permalink()."\" title=\"".get_the_title()."\" class=\"postlink\">Click here to read the full article &rarr;</a>";

然后它被逃脱了:

$wparticle_excerpt = $con->real_escape_string( $wparticle_excerpt );

然后使用以下查询将其写入SQL数据库:

$sql_write_post = "INSERT INTO phpbb_posts (

    topic_id,
    forum_id,
    poster_id,
    icon_id,
    post_time,
    post_approved,
    post_reported,
    enable_bbcode,
    enable_smilies,
    enable_magic_url,
    enable_sig,
    post_subject,
    post_text,
    post_checksum,
    post_attachment,
    post_postcount,
    post_edit_time,
    post_edit_user,
    post_edit_count,
    post_edit_locked

    ) VALUES (

    /* topic_id */          $new_topic_id,
    /* forum_id */          $forum_to_post_in,
    /* poster_id */         $userid_to_assign,
    /* icon_id */           0,
    /* post_time */         $date_to_assign,
    /* post_approved */     1,
    /* post_reported */     0,
    /* enable_bbcode */     0,
    /* enable_smilies */    0,
    /* enable_magic_url */  1,
    /* enable_sig */        0,
    /* post_subject */      '$wparticle_title',
    /* post_text */         '$wparticle_excerpt',
    /* post_checksum */     '$wparticle_excerpt_md5',
    /* post_attachment */   0,
    /* post_postcount */    1,
    /* post_edit_time */    0,
    /* post_edit_user */    0,
    /* post_edit_count */   0,
    /* post_edit_locked */  0

    )";

if (!mysqli_query($con,$sql_write_post)) { die ("Error while creating post: " . mysqli_error($con)); }

问题在于,当我检查输出时,我得到的是两个换行符和读取更多链接。实际的摘录,由get_the_excerpt()创建的部分完全消失了。我得到的只是:

<br />
<br />
<a href="http://localhost/wptest/?p=167" title="Test Post" class="postlink">Click here to read the full article &rarr;</a>

我在转义它之后抛弃了$ wparticle_excerpt变量,我知道这很好。这只是一根长串。

如果我在摘录前放置任何文本,只要它在PHP中是硬编码的。然后有一个空白区域,摘录应该是,然后换行。无论我做什么,我都无法将摘录保留在那里,它只会在某处消失。

我确信这是最简单的事情,但我主要是自学成才,我不知道这是怎么回事。任何帮助都会非常感激。如果我没有正确解释,请告诉我。

我写的phpbb_posts表是utf8_bin,其中的post_text字段是mediumtext类型和utf8_bin,如果有任何帮助的话。

0 个答案:

没有答案