Wordpress没有执行mysql_query()

时间:2016-03-06 18:10:58

标签: php mysql wordpress

我已将旧版Wordpress(3.0.1)更新为4.4.2。一切都有效,除了一个插件,它有这种风格的所有查询。我使用自定义页面来测试一个简单的查询,并可以验证查询没有返回任何内容:

$query = "SELECT code FROM wp_kk_video WHERE id = '0'";
$result = mysql_query ($query);

然后我用以下内容替换了该查询:

$query = $wpdb->get_row( "SELECT code FROM wp_kk_video WHERE id = '0'" );
$result = $query->code;

它完美无缺。

那么为什么Wordpress会停止执行旧类型的mysql_query查询?

2 个答案:

答案 0 :(得分:2)

mysql_ *已被弃用,现在它不适用于较新版本的Php。

<强>建议:

使用PHP 5.3+或5.4+(PHP 5.5+ PHP 5.6+ PHP 7.0+ PHP 7.1+目前不支持。)

或者对WordPress 4.4使用mysqli_*扩展名。

或者根据wordpress $wpdb->get_row进行最后一次更改查询。

<强> PHP Unsupported Branches

<强> WordPress Forum

<强> Wpdb Class References:

答案 1 :(得分:2)

插件应该始终使用wpdb类/变量抽象,这样像你的更新不会破坏你的博客,因为Wordpress代码已经查找了哪些mysql *函数可用。

他们还提供准备好的语句,用于防止SQL注入攻击。如果示例中的id参数是用户提供的值,因此可能是恶意输入,则应将其重写为以下内容以保证安全:

$wpdb->query( $wpdb->prepare( 
    "SELECT code FROM wp_kk_video WHERE id = '%d'", 
    $video_id
) );