Mysql Escape字符串Youtube嵌入代码不起作用

时间:2010-08-25 02:36:48

标签: php embed mysql-real-escape-string

我只想做一件事,一件事。

$embedCode = mysql_real_escape_string('<object width="270" height="227"><param name="movie" value="http://www.youtube.com/v/pz-VWi5-tGA?fs=1&amp;hl=en_US&amp;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/pz-VWi5-tGA?fs=1&amp;hl=en_US&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="270" height="227"></embed></object>');

现在,如果我写...

echo 'CODE = ' . $embedCode;

我明白了......

CODE = 

...没什么

思想?

编辑:

好的,所以我的目的不是打印$ embedCode,而是将它插入数据库,但我得到一个空值。我认为我会成为一个自作聪明,这与我在这里的简单方法相反。无论如何,重点是,它没有通过我的mysql查询。

编辑2: 我正在使用wordpress'$ wpdb object

function insert_video(){

    global $wpdb;
    $wpdb->show_errors();
    $table_name = $wpdb->prefix . "video_manager"; 

    $embedCode = mysql_real_escape_string('<object width="270" height="227"><param name="movie" value="http://www.youtube.com/v/pz-VWi5-tGA?fs=1&amp;hl=en_US&amp;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/pz-VWi5-tGA?fs=1&amp;hl=en_US&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="270" height="227"></embed></object>');
    $title  = 'this is my title'; 
    $description = 'this is my description';

    $wpdb->insert( $table_name, array( 'title' => mysql_real_escape_string($title), 'embed_code' => $embedCode, 'description' => mysql_real_escape_string($description) ) );

}

function get_video_block($id){
    insert_video();
    global $wpdb;
    $wpdb->show_errors();
    $table_name = $wpdb->prefix . "video_manager";
    $query = "SELECT * FROM " . $table_name . " WHERE `index` = '$id'"; 
    $results = $wpdb->get_results($query, ARRAY_A);


    $results = $results[0];

    $returnString = $results['title'] . '<br>';
    $returnString .= $results['embed_code'] . '<br>';
    $returnString .= $results['description'] . '<br>';

    return $returnString;

}

得到结果:

this is my title<br><br>this is my description<br>

1 个答案:

答案 0 :(得分:1)

你打印你的HTML好吧。右键单击并查看应该存在的源。

mysql_real_escape_string根本不是为了逃避html。

如果您使用phpmyadmin查看表中的实际数据会发生什么?如果它不在那里那么问题是当你输入那些数据时。

好的,所以当你把它写到桌子上时你是逃避它你是否正在使用别的东西来分析那些数据^喜欢strip_tags? Strip_tags将把所有的html拿出来。

wpdb_Class是否可以清除那个html?

是的,看看codex.wordpress.org/Function_Reference/wpdb_Class你只需要$ wpdb-&gt;查询('查询')来运行任何查询,所以只需插入即可。如果它有效,你就固定了。