繁体   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