数据未保存在mysql数据库中


Data is not saving in mysql db

我的代码在下面,我不明白这段代码有什么问题,因为我的数据没有保存在mysql-db表中。有人告诉我我的代码有什么问题吗?====================================================

<?php
    $con = mysql_connect('localhost','root','') or die(mysql_error());
    mysql_select_db('csv_data',$con) or die(mysql_error());
    $data = array();
    if(isset($_FILES['submit'])){
        if($FILES['csv_file']['size'] > 0){
            $file = $_FILES['csv_file']['tmp_name'];
            $handle = fopen($file,"r");
        while($data = fgetcsv($handle, 134217728, ',')){
            $query = "INSERT INTO data(url) VALUES ('".$data[0]."')";
            mysql_query($query) or die(mysql_error());
            echo "File Uploaded.";
        }
    }
}
?>
<body>
<form name="frm" action="save_csv_in_mysql_table.php" method="post">
    <input type="file" name="csv_file" value="Upload Csv File"/>
    <input type="submit" name="submit" value="Upload CSV File"/>
</form>
</body>

您需要使用if(isset($_POST['submit'])){

PHP:

    $con = mysql_connect('localhost','root','') or die(mysql_error());
    mysql_select_db('csv_data',$con) or die(mysql_error());
    $data = array();
    if(isset($_POST['submit'])){
        if($FILES['csv_file']['size'] > 0){
            $file = $_FILES['csv_file']['tmp_name'];
            $handle = fopen($file,"r");
            while($data = fgetcsv($handle, 134217728, ',')){
                $query = "INSERT INTO data(url) VALUES ('".$data[0]."')";
                mysql_query($query) or die(mysql_error());
                echo "File Uploaded.";
             }
         }
    }

什么是$_FILES['submit']?我想,你没有这个索引。

尝试在开始的中添加

print_r($_POST);
print_r($_FILES);

然后创建一个正常语句。

例如:

if (isset($_FILES['csv_file'])) {do something}

第二:不要在mysql_query中使用INSERT。阅读PDO,它既安全又舒适。您的代码中存在漏洞(SQL注入)。

您的表单构建错误,因此没有文件正在上传:

<form enctype="multipart/form-data" name="frm" action="save_csv_in_mysql_table.php" method="post" >
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^--missing

然后你没有检查上传是否真的成功,只是盲目地向前走:

if (isset($_FILES['csv_file']['error']) && ($_FILES['csv_file']['error'] !== UPLOAD_ERR_OK)) {
   die("Upload failed with error code#: " . $_FILES['csv_file']['error']);
}

然后,您盲目地尝试从该文件中提取数据,并将该数据直接插入到查询字符串中,这也会使您很容易受到SQL注入攻击。