Class
- Tip&Tech
| [¾Ë°í¸®Áò] php¸¦ ÀÌ¿ëÇÏ¿© mysql µ¥ÀÌÅͺ£À̽º¸¦ ³¯Â¥º°·Î ¹é¾÷ÇÏ¿© ´Ù¿î ¹Þ¾Æ º¸ÀÚ. | |||||
| ±Û¾´ÀÌ | ³¯ Â¥ | 10-12-08 00:32 | Á¶ ȸ | 4049 | |
|---|---|---|---|---|---|
| °£ÆíURL |
http://www.phpschool.com/link/tipntech/72799
|
||||
|
<?
define("__DB_HOST__" ,$host); define("__DB_USER_ID__" ,$userId); define("__DB_PASSWORD__",$password); define("__DB_NAME__" ,$dbName); class DB { var $connect; var $result; var $host = __DB_HOST__; var $userId = __DB_USER_ID__; var $password = __DB_PASSWORD__; var $dbName = __DB_NAME__; function DB() { $this->connect = mysql_connect($this->host,$this->userId,$this->password); if($this->connect == false) { $this->Error(); return false; } if(mysql_select_db($this->dbName) == false) { $this->Error(); return false; } return $this->connect; } // SQL½ÇÇà function Query($sql) { $this->result = mysql_query($sql); if($this->result == false) { $this->Error(); return false; } return $this->result; } // SQL½ÇÇàÁ¾·ù function Fetch($how="array") { if($this->result == false) { $this->Error(); return false; } switch($how) { case "array" : $returnVar = mysql_fetch_array($this->result); break; } return $returnVar; } } =========¿©±â¼ºÎÅͰ¡ ÁøÂ¥====== $db = new DB(); $db2 = new DB(); $db3 = new DB(); $db->Query("show tables"); while($row = $db->Fetch()) { $db2->Query("show create table ".$row[0]); $row2 = $db2->Fetch(); $output[] = $row2[1].";"; $output[] = "\n\n"; $db3->Query("select * from ".$row[0]); while($row3 = $db3->Fetch()) { $field_no = count($row3)/2; $tmp_val = array(); if($field_no) { for($i=0;$i<$field_no;$i++) { $tmp_val[$i] = $row3[$i]; } $val = implode("','",$tmp_val); $val = "'".$val."'"; } $output[] = "insert into ".$row[0]." values (".$val.");"; $output[] = "\n"; } } $file = "db_backup.sql"; $f = @fopen($file, "w"); foreach($output as $v) fwrite($f, $v); fclose($f); @chmod($file, 0606); $real_file = "db_backup_".date('Ymd',time()).".sql"; $file = "db_backup.sql"; if(eregi("(MSIE 5.0|MSIE 5.1|MSIE 5.5|MSIE 6.0)", $_SERVER['HTTP_USER_AGENT'])) { if(strstr($_SERVER['HTTP_USER_AGENT'], "MSIE 5.5")) { header("Content-Type: doesn/matter"); header("Content-disposition: filename=$real_file"); header("Content-Transfer-Encoding: binary"); header("Pragma: no-cache"); header("Expires: 0"); } if(strstr($_SERVER['HTTP_USER_AGENT'], "MSIE 5.0")) { Header("Content-type: file/unknown"); header("Content-Disposition: attachment; filename=$real_file"); Header("Content-Description: PHP3 Generated Data"); header("Pragma: no-cache"); header("Expires: 0"); } if(strstr($_SERVER['HTTP_USER_AGENT'], "MSIE 5.1")) { Header("Content-type: file/unknown"); header("Content-Disposition: attachment; filename=$real_file"); Header("Content-Description: PHP3 Generated Data"); header("Pragma: no-cache"); header("Expires: 0"); } if(strstr($_SERVER['HTTP_USER_AGENT'], "MSIE 6.0")) { Header("Content-type: application/x-msdownload"); Header("Content-Length: ".(string)(filesize("$file"))); Header("Content-Disposition: attachment; filename=$real_file"); Header("Content-Transfer-Encoding: binary"); Header("Pragma: no-cache"); Header("Expires: 0"); } } else { Header("Content-type: file/unknown"); Header("Content-Length: ".(string)(filesize("$file"))); Header("Content-Disposition: attachment; filename=$real_file"); Header("Content-Description: PHP3 Generated Data"); Header("Pragma: no-cache"); Header("Expires: 0"); } $fp = fopen("$file", "rb"); if(!fpassthru($fp)) fclose($fp); unlink ("db_backup.sql"); ?> .Ŭ·¡½º ºÎºÐÀº Àû´çÇÏ°Ô °íÃļ ¾²¼¼¿ä ^^; .´ë¿ë·® µðºñ¿¡ ÀûÇÕÇÏÁö´Â ¾Ê½À´Ï´Ù. .ÇãÁ¢ÇÑ ÀÚ·á ³¡±îÁö ÀоîÁּż °¨»çÇÕ´Ï´Ù. .Å×Ŭ ¸¹ÀÌ °É¾îÁÖ¼¼¿ä. |
|||||
|
|||||
Àüü´ñ±Û¼ö 13
-


±Û½ê¿ä.. 10-12-08 01:50
¼Ò½ºº¸±â
-
Àß º¸Áö´Â ¾Ê¾ÒÁö¸¸..
while($row3 = $db3->Fetch()) {
$field_no = count($row3)/2; // 1
$tmp_val = array();
if($field_no) {
for($i=0;$i<$field_no;$i++) {
$tmp_val[$i] = $row3[$i]; // 2
}
$val = implode("','",$tmp_val);
$val = "'".$val."'";
}
$output[] = "insert into ".$row[0]." values (".$val.");"; // 3-1
$output[] = "\n"; // 3-2
}
// 1 : ÀÌ ºÎºÐÀº ÁÖ¼® Á» ´Þ¾Æ ÁÖ¼¼¿ä.. Á¦°¡ º¸±â¿¡´Â Çʵ尡 1°³ÀÎ Å×À̺íÀº implodeºÎºÐ°úÀÇ Ãæµ¹·Î º¸ÀÌ´Â ±º¿ä..( ÀÖÀ¸³ª ¾øÀ¸³ª µÉ °Í °°±â´Â Çѵ¥.. )
// 2 : mysql_real_escape°¡ ÇÊ¿äÇÒ µí ÇÕ´Ï´Ù. ( ' ) À̳ª binaryÀϰæ¿ì ¹®Á¦°¡ »ý±æ ¼ö ÀÖÀ» µí Çϱº¿ä..
// 3 : 3-2À» 3-1¿¡ ºÙ¿© ¹ö¸®¸é ¾î·¡À̰¡ ¹ÝÀ¸·Î Áٰڳ׿ä..
´ë¿ë·®¿¡´Â ¾î¿ï¸®Áö ¾Ê´Â´Ù´Â ºÎºÐÀÌ ÀüºÎ array·Î ó¸®ÇÏ´Â °úÁ¤¿¡¼ ¹ß»ýÇÏ´Â µí º¸ÀÔ´Ï´Ù.
arrayó¸®ÇÏÁö ¸¶½Ã°í Á÷Á¢ ÆÄÀÏ·Î ¾²½Ã¸é ÁÁÀ» µí ÇÕ´Ï´Ù.
¶Ç ´ë¿ë·® 󸮸¦ À§ÇØ unbuffered-query·Î º¯°æÇÏ´Â °ÍÀÌ ÁÁÀ» µí ½Í½À´Ï´Ù..
¹¹ Áö±Ý »ý°¢³ª´Â °ÍÀº autoincrementÇʵåÀÇ °ªµµ °°ÀÌ ¹é¾÷ÇØ¼ ³ÖÀ¸½Ã¸é ¾ÆÁÖ À¯¿ëÇÒ µí ÇÕ´Ï´Ù..
¼ö°íÇϼ̳׿ä..
ps. °·Â Å×Ŭ : ±×³É shell script·Î ó¸®ÇϽÉÀÌ... -


[±¸Á÷Áß]°í¾çÀÌ¹ß 10-12-08 02:33
¼Ò½ºº¸±â
-
1. $field_no = count($row3)/2; // 1
ÀÌ ºÎºÐÀº Å×ÀÌºí¿¡¼ Ä÷³ÀÇ °¹¼ö¸¦ ÃßÃâÇÏ´Â ºÎºÐÀä.
$db3->Query("select * from ".$row[0]);
Äõ¸®¸¦ ³¯¸®°Ô µÇ¸é ¹è¿ºÎºÐ¿¡ [0]..À妽º ºÎºÐ°ú Ä÷³¸íÀÌ Áߺ¹ÀÌ µÇ¾î °ªÀ» ¹ÝÀ¸·Î ³ª´©¾î
½ÇÁ¦ Ä÷³ÀÇ °¹¼ö¸¦ Ç¥ÇöÇØÁذÍÀÔ´Ï´Ù.
2, 2 ºÎºÐÀº ¹Ìó »ý°¢À» ¸øÇß±º¿ä ¤£
3. ºÎºÐÀº ÀϺη¯ ³ª´«°ÍÀÌ¿¡¿ä..ºÙÀÏ±î ¸»±î ÇÏ´Ù°¡ ¾²ÀÓ»õÀÇ ºÐ¸®¸¦ À§ÇØ ¶³¾î¶ß·Á³ù¾î¿ä.
.ÆÄÀϷΠó¸®ÇÏ´Â ºÎºÐ ÀÖ¾î¿ä ^^;;
foreach($output as $v) fwrite($f, $v);
ÀÌ·¸°Ô ÆÄÀÏ·Î ¾´´ÙÀ½¿¡
¸¶Áö¸·¿¡ ÆÄÀÏÀ» unlink ½ÃŰÁÒ.
.½© ½ºÅ©¸³Æ®·Î ÇÏ´Â ¹æ¹ýÀº ¹Ø¿¡...¸¹´õ¶ó±¸¿ä ¤¾
.¿ÀÅäÀÎÅ©¸®¸ÕÆ®ÀÇ °ª...¹é¾÷µË´Ï´Ù. ¤¾
.°á·Ð : Àú ÇãÁ¢ÀÌ¿¡¿ä ^^;;
-


¹è¸£¸¸ 10-12-08 14:16
¼Ò½ºº¸±â
-
1. single quotation -> double quotation : ÀϹݴܼø ¹®ÀÚ¿Àº ´õºíº¸´Ù´Â ½Ì±Û ÄõÅ×À̼ÇÀ¸·Î! (Á¶±Ý¾¿ ÆÄ½Ì ½Ã°£À» ´ÜÃà½ÃŲ´Ù¸é ¾çÀÌ ¹æ´ëÇØÁú °æ¿ì ¸¹Àº Â÷À̰¡ ³¯ °ÍÀÔ´Ï´Ù.)
- $db->Query("show tables"); -> $db->Query('show tables');
- Header("Content-type: application/x-msdownload"); -> Header('Content-type: application/x-msdownload');
- case "array" -> case 'array'
2. use brakets with double quotation : ½Ì±ÛÄõÅ×À̼ÇÀ¸·Î¸¸ ó¸®ÇϱⰡ ¾Ö¸ÅÇÒ °æ¿ì ¿ÀÇÂ, Ŭ·ÎÁî ºê¶óÄÏÀ¸·Î ¹®ÀÚ¿À» ÆÄ½ÌÇÒ¶§ ÆÄ¼°¡ º¯¼öÀÓÀ» È®¿¬È÷ ÀÎÁö ÇÒ ¼ö ÀÖ°Ô ÇÕ´Ï´Ù.
- $output[] = "insert into ".$row[0]." values (".$val.");"; -> $output[] = "insert into {$row[0]} values ({$val})";
3. ereg -> preg : pcre °è¿ÀÌ ¼Óµµµµ ´õ ºü¸£°í ereg °è¿Àº PHP 6 ¹öÀü ºÎÅÍ´Â Áö¿øÇÏÁö ¾Ê´Â´Ù°í ÇÏ´Ï ¹Ù²Ù¸é ÁÁ°Ú³×¿ä
- eregi("(MSIE 5.0|MSIE 5.1|MSIE 5.5|MSIE 6.0)", $_SERVER['HTTP_USER_AGENT']) -> preg_match('/MSIE \d\.\d/', $_SERVER['HTTP_USER_AGENT'])
-


¼ÛÈ¿Áø 10-12-08 16:24
¼Ò½ºº¸±â
-
#!/bin/bash
if [ ! -d /backup/mysql ]; then
mkdir -p /backup/mysql
fi
TODAY=`date +%F`
mysqldump -u root --password=ºñ¹ÐÀ̾ä -A | bzip2 > /backup/mysql/${TODAY}.mysql.bz2
WEEKAGO=`date +%F -d "-1 WEEK"`
if [ -f /backup/mysql/${WEEKAGO}.mysql.bz2 ]; then
rm /backup/mysql/${WEEKAGO}.mysql.bz2
fi -


[±¸Á÷Áß]°í¾çÀÌ¹ß 10-12-08 16:34
¼Ò½ºº¸±â
-
^^;;
À̰ÍÀ» ÀÛ¼ºÇÏ°Ô µÈ ÀÌÀ¯°¡..
ftp µµ ¸ð¸£´Â °í°´µéÀÌ µðºñ¸¦ ¹é¾÷¹Þ°í ½Í¾îÇÒ¶§ À¥¿¡¼ °£ÆíÈ÷ »ç¿ëÇÒ ¼ö ÀÖ°Ô²û ÇѰſ¡¿ä ^^ -


¼ÛÈ¿Áø 10-12-08 17:25
¼Ò½ºº¸±â
-
passthru() µµ ÀÖÁÒ.
http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=68545&sca=&sfl=wr_name%7C%7Csubject&stx=%BC%DB%C8%BF%C1%F8&sop=and&page=2
<?php
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Content-Type: application/force-download');
header('Content-Type: application/octet-stream');
header('Content-Type: application/download');
header('Content-Disposition: attachment; filename=mysql-'.date('Y-m-d_H-i-s').'.sql.bz2');
passthru('mysqldump -u root --password=ºñ¹ÐÀ̾ä -A | bzip2');
exit; -


[±¸Á÷Áß]°í¾çÀÌ¹ß 10-12-08 17:51
¼Ò½ºº¸±â
- ¤£¤£
-

NATES52 10-12-09 15:35
¼Ò½ºº¸±â
-
$real_file°ú $fileÀ» Çϳª·Î ÅëÇÕÇØÁÖ¼¼¿ä Àú´Â ¸ðµÎ $real_file·Î ÅëÀÏÇß½À´Ï´Ù.. ±âŸ À§¿¡ ±ÇÀå»çÇ×À¸·Î º¯°æÇؼ Á¶±Ý ¼öÁ¤ÇÑ ÆÄÀÏÀÔ´Ï´Ù..
<?
include "./config.inc";
define("__DB_HOST__", $HOST);
define("__DB_USER_ID__", $USER);
define("__DB_PASSWORD__", $PASSWD);
define("__DB_NAME__", $_GET[db]);
class DB
{
var $connect;
var $result;
var $host = __DB_HOST__;
var $userId = __DB_USER_ID__;
var $password = __DB_PASSWORD__;
var $dbName = __DB_NAME__;
function DB()
{
$this->connect = mysql_connect($this->host,$this->userId,$this->password);
if($this->connect == false)
{
$this->Error();
return false;
}
if(mysql_select_db($this->dbName) == false)
{
$this->Error();
return false;
}
return $this->connect;
}
// SQL½ÇÇà
function Query($sql)
{
$this->result = mysql_query($sql);
if($this->result == false)
{
$this->Error();
return false;
}
return $this->result;
}
// SQL½ÇÇàÁ¾·ù
function Fetch($how="array")
{
if($this->result == false)
{
$this->Error();
return false;
}
switch($how)
{
case "array" :
$returnVar = mysql_fetch_array($this->result);
break;
}
return $returnVar;
}
}
//=========¿©±â¼ºÎÅͰ¡ ÁøÂ¥======
$db = new DB();
$db2 = new DB();
$db3 = new DB();
$dbN=$db->dbName;
$output[] = "--\n";
$output[] = "-- {$dbN} Database Backup File\n";
$output[] = "--\n\n";
$db->Query('show tables');
while($row = $db->Fetch()) {
$db2->Query('show create table '.$row[0]);
$row2 = $db2->Fetch();
$output[] = $row2[1].";";
$output[] = "\n\n";
$db3->Query('select * from '.$row[0]);
while($row3 = $db3->Fetch()) {
$field_no = count($row3)/2;
$tmp_val = array();
if($field_no) {
for($i=0;$i<$field_no;$i++) {
$tmp_val[$i] = $row3[$i];
}
$val = implode("','",$tmp_val);
$val = "'".$val."'";
}
$output[] = "insert into {$row[0]} values ({$val});\n";
}
$output[] = "\n\n";
}
$real_file = "{$dbN}_dbbackup_".date('Ymd',time()).".sql";
$f = @fopen($real_file, "w");
foreach($output as $v) @fwrite($f, $v);
@fclose($f);
@chmod($file, 0606);
if( preg_match('/MSIE \d\.\d/', $_SERVER['HTTP_USER_AGENT']) ) {
if(strstr($_SERVER['HTTP_USER_AGENT'], 'MSIE 5.5')) {
header('Content-Type: doesn/matter');
header('Content-disposition: filename=$real_file');
header('Content-Transfer-Encoding: binary');
header('Pragma: no-cache');
header('Expires: 0');
}
if(strstr($_SERVER['HTTP_USER_AGENT'], 'MSIE 5.0')) {
Header('Content-type: file/unknown');
header('Content-Disposition: attachment; filename=$real_file');
Header('Content-Description: PHP3 Generated Data');
header('Pragma: no-cache');
header('Expires: 0');
}
if(strstr($_SERVER['HTTP_USER_AGENT'], 'MSIE 5.1')) {
Header('Content-type: file/unknown');
header('Content-Disposition: attachment; filename=$real_file');
Header('Content-Description: PHP3 Generated Data');
header('Pragma: no-cache');
header('Expires: 0');
}
if(strstr($_SERVER['HTTP_USER_AGENT'], 'MSIE 6.0')) {
Header('Content-type: application/x-msdownload');
Header('Content-Length: '.(string)(filesize('$real_file')));
Header('Content-Disposition: attachment; filename=$real_file');
Header('Content-Transfer-Encoding: binary');
Header('Pragma: no-cache');
Header('Expires: 0');
}
}
$fp = @fopen("$real_file", "rb");
if(!@fpassthru($fp)) @fclose($fp);
//@unlink ("db_backup.sql");
?>
12345678910



