Throw an incorrect usage notice when the query argument of wpdb::prepare() does not include a placeholder.
props ounziw. fixes #25604. git-svn-id: https://develop.svn.wordpress.org/trunk@27073 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
0558df56ce
commit
435df55864
@ -1053,6 +1053,10 @@ class wpdb {
|
|||||||
if ( is_null( $query ) )
|
if ( is_null( $query ) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if ( strpos( $query, '%' ) === false ) {
|
||||||
|
_doing_it_wrong( 'wpdb::prepare', sprintf( __( 'The query argument of %s must have a placeholder.' ), 'wpdb::prepare()' ), '3.9' );
|
||||||
|
}
|
||||||
|
|
||||||
$args = func_get_args();
|
$args = func_get_args();
|
||||||
array_shift( $args );
|
array_shift( $args );
|
||||||
// If args were passed as an array (as in vsprintf), move them up
|
// If args were passed as an array (as in vsprintf), move them up
|
||||||
|
@ -193,4 +193,16 @@ class Tests_DB extends WP_UnitTestCase {
|
|||||||
unset( $modes[ $pos ] );
|
unset( $modes[ $pos ] );
|
||||||
return $modes;
|
return $modes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ticket 25604
|
||||||
|
* @expectedIncorrectUsage wpdb::prepare
|
||||||
|
*/
|
||||||
|
function test_prepare_without_arguments() {
|
||||||
|
global $wpdb;
|
||||||
|
$id = 0;
|
||||||
|
// This, obviously, is an incorrect prepare.
|
||||||
|
$prepared = $wpdb->prepare( "SELECT * FROM $wpdb->users WHERE id = $id", $id );
|
||||||
|
$this->assertEquals( "SELECT * FROM $wpdb->users WHERE id = 0", $prepared );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user