| 652 | * Ensures the connection's sql_mode is WordPress-compatible |
| 653 | * |
| 654 | * @since 3.9.0 |
| 655 | * |
| 656 | * @param resource $dbh The resource given by mysql_connect |
| 657 | */ |
| 658 | function set_sql_mode( $dbh ) { |
| 659 | $incompatible_modes = array( |
| 660 | 'STRICT_TRANS_TABLES', |
| 661 | 'STRICT_ALL_TABLES', |
| 662 | 'NO_ZERO_DATE', |
| 663 | 'TRADITIONAL' |
| 664 | ); |
| 665 | |
| 666 | $res = mysql_query( 'SELECT @@SESSION.sql_mode;', $dbh ); |
| 667 | if ( ! $res ) { |
| 668 | return; |
| 669 | } |
| 670 | |
| 671 | $modes_str = mysql_result( $res, 0 ); |
| 672 | |
| 673 | if ( empty( $modes_str ) ) { |
| 674 | return; |
| 675 | } |
| 676 | |
| 677 | $modes = explode( ',', $modes_str ); |
| 678 | |
| 679 | foreach( $modes as $i => $mode ) { |
| 680 | if ( in_array( $mode, $incompatible_modes ) ) { |
| 681 | unset( $modes[ $i ] ); |
| 682 | } |
| 683 | } |
| 684 | |
| 685 | $modes_str = implode( ',', $modes ); |
| 686 | |
| 687 | mysql_query( "SET SESSION sql_mode='$modes_str';", $dbh ); |
| 688 | } |
| 689 | |
| 690 | /** |