php - 逐字读取文本文件并相应地将单词插入mysql数据库

标签 php mysql

我有一个文本文件 def.txt,它看起来像:-

键入缓存的已用空闲共享缓冲区总数

内存:4039 762 3277 0 59 251

我想逐字读取文件并将其插入 mysql 数据库,如上格式。请帮我解决这个问题。

我当前的代码是:-

$fh = fopen('F:\images\def.txt','r') or die($php_errormsg);

for($i=0;$i<=1;$i++)
 {
  if ($s = fgets($fh,1048576)) 
   {
    $words = preg_split('/\s+/',$s,-1,PREG_SPLIT_NO_EMPTY);
    $imp = implode(" ",$words);

    $con = mysqli_connect("localhost","root","root","test") or die("no connection".mysqli_connect_error());
    $a = "insert into test1 values('$imp')";
    if(mysqli_query($con,$a))
        {
            echo "done"."<br>";
        }
    else
        {
            echo "not done".mysqli_error($con)."<br>";
        }
    mysqli_close($con);

}
echo "<br>";
 }
 fclose($fh) or die($php_errormsg);

最佳答案

既然您只使用了第一行(这是正确的行为吗?),那么应该这样做。它获取数字并将它们一一插入。

$fh = fopen('F:\images\def.txt','r')
    or die('Could not open file');

$con = mysqli_connect("localhost","root","root","test")
    or die("Could not access database. Error message: ".mysqli_connect_error());

$matches = array();
$line = fgets($fh);
preg_match_all('/\b[0-9]+\b/',$line,$matches);

foreach ( $matches as $word ) {
    $query = "insert into test1 (column_name) values('".
        mysqli_real_escape_string($con,$word)."')";
    if(mysqli_query($con,$query))
    {
        echo "Inserted $word<br/>";
    }
    else
    {
        echo "Failed to insert $word. Error message: ".mysqli_error($con)."<br/>";
    }
}

编辑:添加了mysqli_real_escape_string为了安全起见,尽管有了这些数字,它不应该那么重要。只是很好的练习。

关于php - 逐字读取文本文件并相应地将单词插入mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29767732/

相关文章:

php - 内容标签

mysql - 将两列限制为两个字段都必须有数据或两个字段都必须为 NULL

MySQL 表别名

mysql - 如何高效地将时隙输入数据库

php - 为房地产 php 应用程序设计数据库,表中的列太多

php - 如何使用 html 创建可分页网格

php - 选择并列出 child 和 parent

PHP Curl 登录 https

mysql - 单个数据库最大表数

sql - 区分问题和答案