mysql

dump
mysqldump -p --no-data  --routines --triggers test allt > allt-data.sql
export /import sh
export.sh
fields_in="email"
fields_out="@usr"
file="/tmp/ca.csv"
table="table"
 
echo "exporting $fields_in from $table"
mysql -u in -N << eof
  select $fields_in
  from $table                                                                                                                                
    into outfile '$file'                                                                                                                         
    fields enclosed by '"' terminated by ';' escaped by '"'
    lines terminated by '\r\n';
eof
[[ $? != 1 ]] || exit
 
echo "importing $fields_out from $file"
mysql -u out << eof
  load data infile '$file' ignore into table usrs 
    fields enclosed by '"' terminated by ';' escaped by '"'
    lines terminated by '\r\n'
    ( $fields_out )
    set id = @id,
      usr = @usr;
eof
[[ $? != 1 ]] || exit
-- check charsets
SELECT * FROM information_schema.SCHEMATA S;

SELECT 
    CCSA.character_set_name,CCSA.collation_name,T.table_name 
  FROM information_schema.`TABLES` T,
       information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA 
  WHERE CCSA.collation_name = T.table_collation ;
 
SELECT table_schema, table_name, column_name, character_set_name 
  FROM information_schema.`COLUMNS` C;

== php

=== utterly complicated csv output
 
<?php                                                                
 
$db = new mysqli( '','root','xxx','a');          
$res = $db->query( 'select * from t1 order by ide' );                      
 
$db_p = new mysqli( '','root','xxx','b');                   
$fp = fopen('php://output', 'w');                                    
 
while( $row = $res->fetch_assoc( )) {                                
    if( $row['id'] == 0 ) { continue; }                           
    $res_p = $db_p->query( 'select * from t2 where id = '.$row['id'] );
    $row_p = $res_p->fetch_assoc( );                                 
    if( $row_p ) {                                                   
        fputcsv($fp, array(                                          
            $row['id )); }}                                                                    
fclose($fp); 

=== primitive searchfield parsing

public function search( $s ) {                                                                                                                   
 
        $q = array( ); $p = array( ); $a = array( );
 
        $s = str_replace( '*', '%', trim( $s ));
        if( !$s ) { return array( ); }
 
        foreach( explode( ' ', $s ) as $sv ) {
                if( strpos( $sv, '@' ) !== false ) {
                        $q[] = 'tix.e like ?';
                        $p[] = 's';
                        $a[] = "%$sv%";
                } else {
                    $qv = array( );
                    foreach( array( 'fn', 'ln' ) as $f ) {
                        $qv[] = "$f like ?";
                        $p[] = "s";
                        $a[] = "%$sv%";
                    }
                    $q[] = '('.implode( ' or ', $qv ).')';
                }
        }
        $q = 'select tix.*, usrs.name as crewname from tix, usrs 
                where usrs.uname=tix.parent and ('.implode( ' and ', $q ).')';
        $res = $this->sql->query( $q,$p,$a );
        return $res;
}