1

関数を使用してURLにリクエストを送信することにより、MySQLにテキストを保存しています。

URLはスペースとして%20でエンコードされていますが、これはすべて非常に適切ですが、MySQLに保存されると、スペースはアンダースコア_に置き換えられます。

これは文です->This_is_a_sentence。

この問題を回避する方法はありますか?

これはコードです:

    function new_experiment_reply($thread_title = '', $raven_thread_id = '', $text = '', $forum_url = '', $raven_forum_id = '')
{
    $email = $this->session->userdata('email');
    $query = $this->db->query("SELECT id FROM fn_users WHERE email='" . $email . "'");
    $fn_user_id = $query->first_row()->id;
    $query = $this->db->query("SELECT username FROM forum_users WHERE fn_user_id='" . $fn_user_id . "' AND raven_forum_id='" . $raven_forum_id . "'");
    $username = $query->first_row()->username;
    $date = date("Y-m-d H:i");
    $query = $this->db->query('INSERT INTO promo_replies(thread_title, raven_thread_id, text, forum_url, raven_forum_id, date, fn_user_id, username) VALUES("'. $thread_title .'", "'. $raven_thread_id .'", "'. $text .'", "'. $forum_url . '", "'. $raven_forum_id . '", "'. $date . '", "'. $fn_user_id . '", "'. $username . '") ');
}

挿入された変数の値(Fiddlerで見られるように、そしてそうあるべきであるように):

$thread_title= Facebook%20vs%20Google
$raven_thread_id = 123441
$text = This%20is%20a%20sentence
$forum_url = domain.com
$raven_forum_id = 32

クエリをエコーし​​た後、次の結果が得られました。

INSERT INTO promo_replies
    (thread_title, raven_thread_id, text, forum_url, raven_forum_id, date, fn_user_id, username) 
VALUES
    ("Facebook_vs_Google", "123441", "This_is_a_sentence", "domain_com", "32", "2012-09-06 06:04", "8", "usssaa")

私はコードに関して打ちのめされる準備ができているので、そこで心配する必要はありません。

4

0 に答える 0