2011-02-07 8 views
0

私はプログラミングの初心者ですが、私はこのスクリプトを見つけました。これを私のニーズに適応させたいのですが、このスクリプトはMySQLデータベースにメールアドレスを保存しますこれをファイルtxtに保存するには、このコードを再利用することができますか?php、db:mysqlからtxtファイルに変更する

connect.phpファイルがデータベースを使用することに非常に特異的であることを

<?php 

error_reporting(E_ALL^E_NOTICE); 

$db_host = ''; 
$db_user = ''; 
$db_pass = ''; 
$db_name = ''; 

@$mysqli = new mysqli($db_host, $db_user, $db_pass, $db_name); 

if (mysqli_connect_errno()) { 
die('<h1>Could not connect to the database</h1><h2>Please try again after a few moments.</h2>'); 
} 

$mysqli->set_charset("utf8"); 


?> 
+3

このコードの5%がデータベースに関連していない可能性があるため、これを「再利用」することはできません。 – Mchl

+0

これは完全な書き換えのように聞こえる –

答えて

0

あるaddress.php

require "includes/connect.php"; 

$msg = ''; 

if($_POST['email']){ 

    // Requested with AJAX: 
    $ajax = ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'); 

    try{ 
     if(!filter_input(INPUT_POST,'email',FILTER_VALIDATE_EMAIL)){ 
      throw new Exception('Invalid Email!'); 
     } 

     $mysqli->query("INSERT INTO coming_soon_emails 
         SET email='".$mysqli->real_escape_string($_POST['email'])."'"); 

     if($mysqli->affected_rows != 1){ 
      throw new Exception('This email already exists in the database.'); 
     } 

     if($ajax){ 
      die('{"status":1}'); 
     } 

     $msg = "Thank you!"; 

    } 
    catch (Exception $e){ 

     if($ajax){ 
      die(json_encode(array('error'=>$e->getMessage()))); 
     } 

     $msg = $e->getMessage(); 
    } 
} 

。ただし、ファイルを使用することは難しくありません。私は、単純なファイルを使用するのではなく、完全に本格的なデータベースではなくファイルを使用するsqliteのようなデータベースの使用を検討することをお勧めします。

ファイルを使用するように設定されている場合、PHPでファイルを非常に簡単に操作できます。いくつかの例は以下のとおりです。

$file = fopen('path/to/file', 'r+'); 

    fputs($file, '[email protected]'); 
    // fputs() is an alias for fwrite, they are interchangable 

This pagefopen()でファイルを開くための異なるモードを詳述します。モードがファイルの先頭または最後にファイルポインタを開くかどうかに特別な注意を払う必要があります。あなたがファイルにいくつかの電子メールを書いた場合は、最初にファイルポインタを使ってファイルを開いて、さらに電子メールを書き込むと、既存のデータを上書きします。これは、既存のデータを削除するためにより大きなネジを必要とするため、データベースを使用する良い理由です。

fputs()は、ファイルに行を書き込むために使用されます。明らかに、例ではコード化した文字列ではなく、変数を渡すことができます。変数が意味のある文字列であることを確認してください。たとえば、電子メールの配列を渡すことはできません。配列全体をループし、メールごとにfputs()を呼び出す必要があります。

0

あなたはその一部を再利用できます。実際にデータをデータベースに保存する行は$mysqli->queryを開始する行で、その後の行が成功のためのチェックになります。これらを削除して、独自のテキストファイル保存関数に置き換えます(そして、それらをmysqliコネクタを定義する指定ファイルではなく、インクルードファイルに置きます)。