簡體   English   中英

php,將數據庫:從MySQL更改為txt文件

[英]php, change a db: from MySQL to txt file

我是編程的新手,我找到了這個腳本,我想適應我的需要,該腳本將郵件地址保存在MySQL db上,但是我想將其保存在txt文件中,可以重新使用此代碼?

地址.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();
    }
}

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");


?>

該文件非常特定於使用數據庫。 但是,使用文件並不困難。 我建議不要使用普通文件,而應考慮使用像sqlite這樣的數據庫,該數據庫使用文件而不是完全成熟的數據庫。

如果您准備使用文件,則可以在php中非常輕松地操作文件。 下面是一些示例:

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

    fputs($file, 'email@domain.com'); 
    // fputs() is an alias for fwrite, they are interchangable

本頁詳細介紹了使用fopen()打開文件的不同模式。 您將需要特別注意模式是在文件的開頭還是結尾處打開文件指針。 如果您向該文件寫了一些電子郵件,然后稍后再次使用文件指針打開該文件以開始寫更多電子郵件,則將覆蓋現有數據。 這是使用數據庫的一個很好的理由,因為它需要更大的麻煩才能刪除現有數據。

fputs()用於將行寫入文件。 顯然,您可以傳遞一個變量,而不要傳遞我在示例中經過硬編碼的字符串,只需確保該變量是一些有意義的字符串即可。 例如,您不能傳遞一系列電子郵件。 您將不得不遍歷數組並為每封電子郵件調用fputs()

您可以重用其中的一部分; 實際上將數據保存到數據庫的那一行是從$mysqli->query開始的$mysqli->query行,其后的那一行是對成功的檢查。 刪除它們,並用您自己的文本文件保存功能替換它們(並將它們放在包含文件中,而不是給定的定義mysqli連接器的文件中)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM