0
我想確保我的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));
這是罰款,獲取數據,但是否準備尚不清楚()的工作,如果以其他方式使用將停止SQL注入。我擔心的是,我可以輕鬆地將$ id更改爲一個字符串(即$ id =「2」;)並且代碼仍然可以獲取我的數據。不應該準備停止工作?
如何在使用外部數據庫時正確使用準備工作?它是$ mydb-> prepare()或者它應該是$ wpdb-> prepare()還是別的?
感謝
準備語句仍然讓你發送無效數據,它只是不會將該數據視爲可能的sql命令。 –
謝謝帕拉,但這實際上意味着什麼?我不需要擔心我的代碼是否返回數據,而不管我是否使用整數或字符串? –
那麼它將是一個字符串,而不是'table.column = 5'它將是'table.column ='一些字符串',並且不管它爲字符串賦予什麼值,它仍然會很好 –