无法使用php从txt文件向表中插入数据

时间:2016-09-09 10:43:34

标签: php mysql fgets

我有一个文本(.txt)文件,如下所示。

0   1   1       1   30  2014-08-30 14:38:40
1   1   1       1   30  2014-08-30 14:41:55
2   1   1       1   30  2014-08-30 14:47:54
3   1   1       1   30  2014-08-30 14:53:04
4   1   5       1   30  2014-10-02 14:29:42

我想将该文件中的一些数据插入数据库。这是staff_detail table:

的结构
id(int32) primary key
no(int32)
staff_id(int32)
date_time(datetime)

所以,我从.txt文件中读取数据并尝试插入数据库,如下所示:

<?php
    include('dbconfig.php');
    $handle = fopen($_FILES['record']['tmp_name'], "r");
    while(!feof($handle)){
        $row = fgets($handle);
        if( strlen(trim($row)) > 0 ) {
            $data = explode("\t",$row);
            $no = $data[0];
            $staff_id = $data[2];
            $date = $data[6];
            echo "No: $no | ID: $staff_id | Date: $date <br/>";
            $query = "INSERT INTO staff_detail(`no`,`staff_id`,`date_time`)VALUES($no,$staff_id,$date)";
            $rsl = mysql_query($query) or die(mysql_error());
        }
    }
?>

当我运行此文件时,我收到如下错误: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1

但是,我可以看到echo中的所有数据,只是无法插入到数据库中。

当我在Firebug中检查文本文件数据时。我看到的数据如下所示:

�0� �1� �1� �   �1� �3�0�   �2�0�1�4�-�0�8�-�3�0� �1�4�:�3�8�:�4�0�
�
�1� �1� �1� �   �1� �3�0�   �2�0�1�4�-�0�8�-�3�0� �1�4�:�4�1�:�5�5�
�
�2� �1� �1� �   �1� �3�0�   �2�0�1�4�-�0�8�-�3�0� �1�4�:�4�7�:�5�4�
�
�3� �1� �1� �   �1� �3�0�   �2�0�1�4�-�0�8�-�3�0� �1�4�:�5�3�:�0�4�
�
�4� �1� �5� �   �1� �3�0�   �2�0�1�4�-�1�0�-�0�2� �1�4�:�2�9�:�4�2�
�
�5� �1� �5� �   �1� �3�0�   �2�0�1�4�-�1�0�-�0�2� �1�4�:�3�7�:�4�4�
�
�6� �1� �7� �   �1� �3�0�   �2�0�1�4�-�1�0�-�0�2� �1�4�:�4�6�:�2�2�
�
�7� �1� �8� �   �1� �3�0�   �2�0�1�4�-�1�0�-�0�2� �1�4�:�4�7�:�5�6�

因此,当$no值为0时,我尝试使用var_dump($no)检查$no。(我的意思是使用txt文件的第一行进行测试)。

我得到的结果如下:string(3) "0"。我认为这是错误的,因为它只有一个字符串"0"。但它显示string(3)

所以,我猜它可能是空格,所以我尝试使用str_replace并将$no$staff_id类型更改为int并尝试再次插入表格。

但它显示了同样的错误,我一直坚持这个问题。现在,我不知道要解决它。我非常感谢任何答案和建议。

0 个答案:

没有答案