Changeset 41479 for branches/4.0
- Timestamp:
- 09/19/2017 03:02:25 PM (8 years ago)
- Location:
- branches/4.0
- Files:
-
- 3 edited
-
. (modified) (1 prop)
-
src/wp-includes/wp-db.php (modified) (1 diff)
-
tests/phpunit/tests/db.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/4.0
-
branches/4.0/src/wp-includes/wp-db.php
r33994 r41479 1208 1208 $args = func_get_args(); 1209 1209 array_shift( $args ); 1210 1210 1211 // If args were passed as an array (as in vsprintf), move them up 1211 if ( is set( $args[0] ) && is_array($args[0]) )1212 if ( is_array( $args[0] ) && count( $args ) == 1 ) { 1212 1213 $args = $args[0]; 1214 } 1215 1216 foreach ( $args as $arg ) { 1217 if ( ! is_scalar( $arg ) ) { 1218 _doing_it_wrong( 'wpdb::prepare', sprintf( 'Unsupported value type (%s).', gettype( $arg ) ), '4.0.19' ); 1219 } 1220 } 1221 1213 1222 $query = str_replace( "'%s'", '%s', $query ); // in case someone mistakenly already singlequoted it 1214 1223 $query = str_replace( '"%s"', '%s', $query ); // doublequote unquoting -
branches/4.0/tests/phpunit/tests/db.php
r33994 r41479 354 354 } 355 355 356 function test_prepare_sprintf() { 357 global $wpdb; 358 359 $prepared = $wpdb->prepare( "SELECT * FROM $wpdb->users WHERE id = %d AND user_login = %s", 1, "admin" ); 360 $this->assertEquals( "SELECT * FROM $wpdb->users WHERE id = 1 AND user_login = 'admin'", $prepared ); 361 } 362 363 /** 364 * @expectedIncorrectUsage wpdb::prepare 365 */ 366 function test_prepare_sprintf_invalid_args() { 367 global $wpdb; 368 369 $prepared = @$wpdb->prepare( "SELECT * FROM $wpdb->users WHERE id = %d AND user_login = %s", 1, array( "admin" ) ); 370 $this->assertEquals( "SELECT * FROM $wpdb->users WHERE id = 1 AND user_login = ''", $prepared ); 371 372 $prepared = @$wpdb->prepare( "SELECT * FROM $wpdb->users WHERE id = %d AND user_login = %s", array( 1 ), "admin" ); 373 $this->assertEquals( "SELECT * FROM $wpdb->users WHERE id = 0 AND user_login = 'admin'", $prepared ); 374 } 375 376 function test_prepare_vsprintf() { 377 global $wpdb; 378 379 $prepared = $wpdb->prepare( "SELECT * FROM $wpdb->users WHERE id = %d AND user_login = %s", array( 1, "admin" ) ); 380 $this->assertEquals( "SELECT * FROM $wpdb->users WHERE id = 1 AND user_login = 'admin'", $prepared ); 381 } 382 383 /** 384 * @expectedIncorrectUsage wpdb::prepare 385 */ 386 function test_prepare_vsprintf_invalid_args() { 387 global $wpdb; 388 389 $prepared = @$wpdb->prepare( "SELECT * FROM $wpdb->users WHERE id = %d AND user_login = %s", array( 1, array( "admin" ) ) ); 390 $this->assertEquals( "SELECT * FROM $wpdb->users WHERE id = 1 AND user_login = ''", $prepared ); 391 392 $prepared = @$wpdb->prepare( "SELECT * FROM $wpdb->users WHERE id = %d AND user_login = %s", array( array( 1 ), "admin" ) ); 393 $this->assertEquals( "SELECT * FROM $wpdb->users WHERE id = 0 AND user_login = 'admin'", $prepared ); 394 } 395 356 396 function test_db_version() { 357 397 global $wpdb;
Note: See TracChangeset
for help on using the changeset viewer.