Wordpress $ wpdb准备外部sql数据库

时间:2015-05-29 01:25:01

标签: mysql sql wordpress sql-injection wpdb

我正在努力确保我的Wordpress代码可以安全地从SQL注入中尝试使用$ wpdb-> prepare()来确保这一点。但是,它似乎没有正常运作。

我正在练习的代码从同一服务器上的不同SQL数据库中提取数据(即不是从wordpesss数据库中提取)。我使用的代码是:

$mydb = new $wpdb('databese_username','password','datbasename', 'host');
$id = 2;
$users = $mydb->get_results( $mydb->prepare("SELECT table.column
                             FROM table.column
                             INNER JOIN table ON table.column = table.column
                             WHERE table.column = %d",$id));

这对于获取数据很好,但是不清楚prepare()是否正常工作,并且如果以其他方式使用则会停止sql注入。我担心的是我可以轻松地将$ id更改为字符串(即$ id =“2”;),代码仍然可以获取我的数据。不应该准备停止工作吗?

如何在使用外部数据库时正确使用准备工作?是$ mydb-> prepare()还是应该是$ wpdb-> prepare()还是别的什么?

谢谢

1 个答案:

答案 0 :(得分:0)

你必须已经与wordpress数据库连接。所以你不需要连接到数据库..你可以使用全局$ wpdb;

global $wpdb; 
$id = 2;
$users = $wpdb->get_results("SELECT table.column
                             FROM table.column
                             INNER JOIN table ON table.column = table.column
                             WHERE table.column = %d",$id);