Pages

Wednesday, March 21, 2012

MySQL search and replace in whole database

<?php

function generate_queries($database, $user, $password, $host, $search, $replace) {

    $conn = mysql_connect($host, $user, $password);
    if (!$conn) {
        die('Unable to connect ' . mysql_error());
    }
  
    if (!mysql_select_db('INFORMATION_SCHEMA', $conn)) {
        die('Cannot use INFORMATION_SCHEMA');
    }
  
    $database_sql = mysql_real_escape_string($database, $conn);
    $query_tables = "select TABLE_NAME from TABLES where TABLE_SCHEMA = '$database_sql'";
    $tables_res = mysql_query($query_tables);
  
    $queries = '';
    $search_sql = mysql_real_escape_string($search, $conn);
    $replace_sql = mysql_real_escape_string($replace, $conn);
   echo '<pre>';
   
    while($tables_row = mysql_fetch_assoc($tables_res)) {
   
        $table_sql = mysql_real_escape_string($tables_row['TABLE_NAME'], $conn);
      
        $query_columns = "select COLUMN_NAME from COLUMNS where TABLE_SCHEMA = '$database_sql' and TABLE_NAME = '$table_sql' and DATA_TYPE in ('varchar', 'text', 'longtext')";
        $columns_res = mysql_query($query_columns);
        $columns = array();
        while ($column_row = mysql_fetch_assoc($columns_res)) {
            $columns[] = $column_row['COLUMN_NAME'];
        }
       
        if (!empty($columns)) {
            $queries .= "update `{$tables_row['TABLE_NAME']}` set ";
            foreach ($columns as $i => $column) {
                if ($i) {
                    $queries .= ", ";
                }
                $queries .= "`$column` = replace(`$column`, '$search_sql', '$replace_sql')";
            }
            $queries .= ";\n";
        }
    }
  
    return $queries;
}

echo $res = generate_queries('aus_sqt','root','','localhost','softqube','sqt');die();

?>

Tuesday, March 13, 2012

Redirect Using .htaccess

RewriteEngine On

rewritecond %{http_host} ^mydomain.com [nc]
rewriterule ^(.*)$ http://www.mydomain.com/$1 [r=301,nc]


RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://www.mydomain.com/ [R=301,L]


ErrorDocument 404 http://www.mydomain.com/404.htm

Monday, March 12, 2012

Mysql Date Format Using MySQL DATE_FORMAT()

MySQL DATE_FORMAT() Example

copyDATE_FORMAT(NOW(),'%W, %M %e, %Y %h:%i %p')
#yields 'Sunday, March 12, 2012 10:35 AM'

MySQL DATE_FORMAT() Representations

Specifier    Description
%a            Abbreviated weekday name (Sun..Sat)
%b            Abbreviated month name (Jan..Dec)
%c            Month, numeric (0..12)
%D            Day of the month with English suffix (0th, 1st, 2nd, 3rd, …)
%d            Day of the month, numeric (00..31)
%e            Day of the month, numeric (0..31)
%f            Microseconds (000000..999999)
%H            Hour (00..23)
%h            Hour (01..12)
%I            Hour (01..12)
%i            Minutes, numeric (00..59)
%j            Day of year (001..366)
%k            Hour (0..23)
%l            Hour (1..12)
%M            Month name (January..December)
%m            Month, numeric (00..12)
%p            AM or PM
%r            Time, 12-hour (hh:mm:ss followed by AM or PM)
%S            Seconds (00..59)
%s            Seconds (00..59)
%T            Time, 24-hour (hh:mm:ss)
%U            Week (00..53), where Sunday is the first day of the week
%u            Week (00..53), where Monday is the first day of the week
%V            Week (01..53), where Sunday is the first day of the week; used with %X
%v            Week (01..53), where Monday is the first day of the week; used with %x
%W            Weekday name (Sunday..Saturday)
%w            Day of the week (0=Sunday..6=Saturday)
%X            Year for the week where Sunday is the first day of the week, numeric, four digits; used with %V
%x            Year for the week, where Monday is the first day of the week, numeric, four digits; used with %v
%Y            Year, numeric, four digits
%y            Year, numeric (two digits)
%%            A literal “%” character
%x            x, for any “x” not listed above


$sql = " select * from TABLE_NAME where DATE_FORMAT(date_registered,'%W') = 'Monday' and date_registered BETWEEN '2011-12-15 06:21:53' AND '2011-12-21 06:21:53' ";
    $res = mysql_query($sql);
    while($row = mysql_fetch_array($res))
    {
        echo $row['DATE_FORMAT(date_registered,\'%W\')'];
    }