2016-08-12 21 views
7

テキストファイルにのvar_dumpを保存私はSQLクエリのためのPHPコードを持って

<? 
 
$server = "127.0.0.1"; 
 
$username = "root"; 
 
$password = "1"; 
 

 
$link= connecttodb($server,$username,$password); 
 

 
function connecttodb($server,$username,$password) 
 
{ 
 

 
    $rez=fopen("test.txt","ab"); 
 
    if ($link=mysql_connect ("$server","$username","$password",TRUE)) 
 
    { 
 
     fwrite($rez,"".$server." \r\n"); 
 
\t  echo "Connected successfully to >> " .$server ; 
 
\t \t 
 
\t \t $result = mysql_query('SHOW DATABASES'); 
 
     echo "<br>"; 
 
     while ($row = mysql_fetch_array($result)) 
 
     { 
 
      var_dump ($row); } 
 
\t  } 
 
    } 
 
    ini_set('max_execution_time', 10); 
 
    return $link; 
 
?>

私は、テキストファイル

にデータベース名を保存することができますどのようにブラウザ でこのコード印刷私のデータベース名を

Connected successfully to >> 127.0.0.1 
 
array(2) { [0]=> string(18) "information_schema" ["Database"]=> string(18) "information_schema" } array(2) { [0]=> string(2) "db" ["Database"]=> string(2) "db" } array(2) { [0]=> string(5) "mysql" ["Database"]=> string(5) "mysql" } array(2) { [0]=> string(10) "phpmyadmin" ["Database"]=> string(10) "phpmyadmin" } array(2) { [0]=> string(4) "test" ["Database"]=> string(4) "test" }

+1

あなたはDBへの接続を開始した場合、あなたはデシベル – RamRaider

+0

の名前を知っている必要があります[ 'mysql_'データベースの拡張機能](http://stackoverflow.com/questions/12859942を使用してはいけないしてくださいなぜなら、PHPを学んでいるだけなら、特にあなたのエネルギーを 'PDO'データベース拡張を学ぶことに費やすことができます。 [こちらから](http://php.net/manual/en/book.pdo.php)非常に簡単に – RiggsFolly

+0

@RamRaider OPのコードを見ると、彼はスキーマを指定せずにサーバーへの接続を初期化しています。彼はアクセスしているサーバー上のすべてのデータベースを一覧表示しようとしています。 – Matth3w

答えて

14

出力バッファリング機能を使用すると、出力をキャプチャしてファイルに書き込むことができます。

ob_flush(); 
ob_start(); 
while ($row = mysql_fetch_assoc($result)) { 
    var_dump($row); 
} 
file_put_contents("dump.txt", ob_get_flush()); 
+0

'var_dump'は人間がデバッグするためのものであり、プログラムによって解析されることはありません。 – Barmar

+0

ここをクリックしてください http://stackoverflow.com/questions/38928140/save-var-dump-into-text-file-for-multi-server-ip-from-text-file –

-3

これは、あなたがそれを読みやすくするために最初の変数をシリアル化したい場合があり

$file = 'somefile.txt'; 
file_put_contents($file, $some_var); 

を動作するはずです。

しかし、他のいくつかの方法があります。http://php.net/manual/en/function.file-put-contents.php

6

ので、同じようシリアライズ使用し、このためのvar_dumpを使用しないでください:

<?php 
$fp = fopen('vardump.txt', 'w'); 
fwrite($fp, serialize($myobj)); 
fclose($fp); 
?> 

それを復元するには、($ FILECONTENTS)アンシリアライズを使用することができます。それをファイルから読み込みます。

+1

シンプルで優れたアイデア。また、シリアル化されたデータよりも読みやすい文字列を作成する 'print_r()'もあります。 –

0
<? 
$server = "127.0.0.1"; 
$username = "root"; 
$password = "1"; 

$link= connecttodb($server,$username,$password); 

function connecttodb($server,$username,$password) 
{ 

$rez=fopen("test.txt","ab"); 
    if ($link=mysql_connect ("$server","$username","$password",TRUE)) 
    { 
    fwrite($rez,"".$server." \r\n"); 
    echo "Connected successfully to >> " .$server ; 

     $result = mysql_query('SHOW DATABASES'); 
echo "<br>"; 
while ($row = mysql_fetch_array($result)) 
{ 
fwrite($rez, $row['DatabaseName']); } 

    } 

} 
ini_set('max_execution_time', 10); 
return $link; 
    ?> 
関連する問題