KISS सिद्धांत :बस phpMyAdmin का उपयोग करें? यह लगभग निश्चित रूप से स्थापित है। अगर ऐसा नहीं है, तो इसे इंस्टॉल करें ।
इसकी आयात क्षमता शानदार है। यदि आपका डेटाबेस किसी भी तरह से बहुत बड़ा है, तो उसे gzip करें। यदि यह अभी भी बड़ा है, तो इसे कुछ टुकड़ों में विभाजित करने का प्रयास करें। मुझे संदेह है कि आपको इसे एक बड़े लेनदेन के रूप में स्थानांतरित करने की आवश्यकता है। क्या आप?
पहली टिप्पणी में स्पष्टीकरण के बाद, यहाँ जाता है। यह मेरी बहुत ही सरल लिपि है जो वही करती है जो आप चाहते हैं। सिवाय इसके कि यह विभाजकों पर एक नज़र नहीं डालता:एक क्वेरी ==एक पंक्ति।
<link href="style/contents.css"/>
<?
function timesanitize($v) {
if ($v > 0)
return round($v, 4);
else
return 0;
}
$startmt = microtime();
include_once 'include/db.php';
$f = fopen("db.sql","r");
echo dbGetEngine() . "<br>";
echo "<ul>";
do {
$l = rtrim(fgets($f));
if (strlen($l) == 0)
continue;
if (substr($l, 0, 1) == '#')
continue;
$l = str_replace(
array("\\n"),
array("\n"),
$l);
if (dbGetEngine() == "pgsql")
$l = str_replace(
array("IF NOT EXISTS", "LONGBLOB"),
array("", "TEXT"),
$l);
try {
echo "<li>".nl2br(htmlspecialchars($l));
$mt = microtime();
$db->query($l);
echo "<ul><li>ok - " . timesanitize(microtime() - $mt) . "</ul>";
} catch (PDOException $e) {
echo "<ul><li>".$e->getMessage() . "</ul>";
}
} while (!feof($f));
fclose($f);
echo 'total: ' . timesanitize(microtime() - $startmt);
?>
यह एक छोटा सा आँकड़ा भी आउटपुट करता है कि प्रत्येक क्वेरी में कितना समय लगा। यह पीडीओ के आसपास आधारित है; मेरा मानना है कि पीडीओ को PHP5.1 या PHP5.2 में पेश किया गया था। मुझे लगता है कि इसे सीधे mysql_*()
. के साथ काम करने के लिए संशोधित करना तुच्छ होना चाहिए कार्य, यदि किसी कारण से आप इसे पसंद करते हैं।
और एक बार फिर:हाँ, मुझे पता है कि यह बेकार है। लेकिन जब तक यह मेरे लिए काम करता है (टीएम), और संभवतः आप... :-)
कोड को पूरा करने के लिए, यहां include/db.php
हैं और एक नमूना include/config.php
:
include/db.php
:
<?
include_once 'include/config.php';
try {
$attribs =
array(
PDO::ATTR_PERSISTENT => $config['db']['persistent'],
PDO::ATTR_ERRMODE => $config['db']['errormode']
);
$db = new PDO(
$config['db']['uri'],
$config['db']['user'],
$config['db']['pass'],
$attribs
);
$db->query("SET NAMES 'utf8'");
$db->query("SET CHARACTER SET 'utf8'");
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
function dbGetEngine() {
global $config;
return substr($config['db']['uri'], 0, strpos($config['db']['uri'], ':'));
}
?>
include/config.php
:
<?
//$config['db']['uri'] = 'sqlite:' . realpath('.') . '/site.db'; // PDO's database access URI
$config['db']['uri'] = 'mysql:host=localhost;dbname=sitedb'; // server should be : 195.78.32.7
//$config['db']['uri'] = 'pgsql:host=localhost;dbname=sitedb';
$config['db']['user'] = 'user_goes_here'; // database username
$config['db']['pass'] = 'pass_goes_here'; // database password
$config['db']['persistent'] = false; // should the connection be persistent
$config['db']['errormode'] = PDO::ERRMODE_EXCEPTION; // PDO's error mode
?>
SQLite, MySQL और PostgreSQL के लिए नमूना कनेक्शन स्ट्रिंग शामिल हैं।