我从自定义表中返回一些数据,但我不确定代码是否足够安全。你能救我吗?
$page_title = get_the_title();
$id = $wpdb->get_row('select id from table where name="'.htmlspecialchars($page_title).'"');
答案 0 :(得分:0)
不确定为什么要匹配标题,通常在搜索时最好使用id。
但是当标题与var匹配时,这就是自定义查询看起来像获取帖子ID的样子。准备做适当的逃避。请参见第一名准备工作http://codex.wordpress.org/Class_Reference/wpdb
global $wpdb;
$page_title = get_the_title();
$id = $wpdb->get_row($wpdb->prepare('SELECT id FROM ' . $wpdb->posts . ' WHERE post_title = %s', $post_title));
或者您可以在var上使用WordPress的esc_sql()函数。 http://codex.wordpress.org/Function_Reference/esc_sql
但就像我说的那样,这个查询似乎倒退了。如果你有get_the_title(),你也应该有_ID()或get_the_ID(),所以不需要查询。所以这取决于你想要做什么。