Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过PHP上传CSV文件并插入MySQL数据库_Php_Html_Mysql_Fopen_Fgetcsv - Fatal编程技术网

通过PHP上传CSV文件并插入MySQL数据库

通过PHP上传CSV文件并插入MySQL数据库,php,html,mysql,fopen,fgetcsv,Php,Html,Mysql,Fopen,Fgetcsv,页面上不显示任何错误消息。上传文件按钮工作。“上载”按钮不会触发db insert,但页面会像触发db insert一样刷新 我不确定Excel中的数据数组是否在INSERT Into命令中正确编码。非常感谢您的帮助,但请保持简单。我不是一个经验丰富的开发者。非常绿色,主要使用过程编码。如果你使用一个有经验的术语,不要以为我知道它的意思 PHP-if Post提交按钮代码。如果未附加任何文件并单击“提交”按钮,则不会显示errorMsg var_dump($_POST); if (isse

页面上不显示任何错误消息。上传文件按钮工作。“上载”按钮不会触发db insert,但页面会像触发db insert一样刷新

我不确定Excel中的数据数组是否在INSERT Into命令中正确编码。非常感谢您的帮助,但请保持简单。我不是一个经验丰富的开发者。非常绿色,主要使用过程编码。如果你使用一个有经验的术语,不要以为我知道它的意思

PHP-if Post提交按钮代码。如果未附加任何文件并单击“提交”按钮,则不会显示errorMsg

var_dump($_POST);

  if (isset($_POST['submit'])) {

    //print_r($_FILES);
    $ok = 'true';
    $file = $_FILES['csv_file']['tmp_name'];
    $handle = fopen($file, "r");
    echo ++$x;
        if ($handle !== FALSE){

          $errorMsg = "<br /><div align='center'><font color='red'>Please select a CSV file to import</font></div>";
          $ok = 'false';
          echo ++$x;
var\u dump($\u POST);
如果(isset($_POST['submit'])){
//打印(美元文件);
$ok='true';
$file=$\u文件['csv\u文件]['tmp\u名称'];
$handle=fopen($file,“r”);
echo++$x;
如果($handle!==FALSE){
$errorMsg=“
请选择要导入的CSV文件”; $ok='false'; echo++$x;
PHP继续-我没有看到上传的文件填充数据库

        } else {
            print_r(fgetcsv($handle));
            while(($filesop = fgetcsv($handle, 1000, ",")) !== FALSE){
              $email = mysqli_real_escape_string($con_db, $filesop[0]);
              $f_name = mysqli_real_escape_string($con_db, $filesop[1]);
              $l_name = mysqli_real_escape_string($con_db, $filesop[2]);
              $password = md5(mysqli_real_escape_string($con_db, $filesop[3]));
              $zipcode = mysqli_real_escape_string($con_db, $filesop[4]);
              $co_id = mysqli_real_escape_string($con_db, $filesop[5]);
              $employee = mysqli_real_escape_string($con_db, $filesop[6]);
              $assessment_ct = mysqli_real_escape_string($con_db, $filesop[7]);
                echo ++$x;
              $email = filter_var($email, FILTER_SANITIZE_EMAIL);

                if ( strlen($email) > 0) {
                  echo ++$x;

                  if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
                    echo ++$x;
                    $ok = 'false';
                    $errorMsg .= 'E-mail address is not correct';
                  }
                }
// error handling for password        
                if (strlen($password) >= 5) {
                    echo ++$x;
                    $ok = 'true';
                } else {
                    echo ++$x;
                    $ok = 'false';
                    $errorMsg .= 'Your password is too short (please use at least 5 characters)';
                }
 // If the tests pass we can insert it into the database.       
            if ($ok == 'true') {
                echo ++$x;
              $sql = mysqli_query($con_db, "INSERT INTO `myMembers` (email, f_name, l_name, password, zipcode, co_id, employee, assessment_ct) VALUES ('$email', '$f_name', '$l_name', '$password', '$zipcode', '$co_id', '$employee', '$assessment_ct')") or die ("Shit is not working");
            } else {// close if $ok == 'true'

            $result = print_r($handle);
            echo $handle.'<br>';
            echo ++$x;

            }

        } // close WHILE LOOP

        fclose($handle);

          if ($sql !== FALSE) {
          echo ++$x;
            $successMsg = 'Your database has imported successfully!';
            //print_r($_FILES);
            //header('excel_import.php');
          } else {
          echo ++$x;
            $errorMsg = 'Sorry! There is some problem in the import file.';
            //print_r($_FILES);
            //header('excel_import.php');
          }

    } // close if (!is_null($file)){
  } // close if $post = submit
}其他{
打印(fgetcsv($handle));
而($filesop=fgetcsv($handle,1000,“,”)!==FALSE){
$email=mysqli\u real\u escape\u字符串($con\u db,$filesop[0]);
$f_name=mysqli_real_escape_字符串($con_db,$filesop[1]);
$l_name=mysqli_real_escape_字符串($con_db,$filesop[2]);
$password=md5(mysqli_real_escape_字符串($con_db,$filesop[3]);
$zipcode=mysqli_real_escape_string($con_db,$filesop[4]);
$co_id=mysqli_real_escape_字符串($con_db,$filesop[5]);
$employee=mysqli_real_escape_字符串($con_db,$filesop[6]);
$assessment\u ct=mysqli\u real\u escape\u字符串($con\u db,$filesop[7]);
echo++$x;
$email=filter\u var($email,filter\u SANITIZE\u email);
如果(strlen($email)>0){
echo++$x;
如果(!filter_var($email,filter_VALIDATE_email)){
echo++$x;
$ok='false';
$errorMsg.='电子邮件地址不正确';
}
}
//密码的错误处理
如果(strlen($password)>=5){
echo++$x;
$ok='true';
}否则{
echo++$x;
$ok='false';
$errorMsg.=“您的密码太短(请至少使用5个字符)”;
}
//如果测试通过,我们可以将其插入数据库。
如果($ok=='true'){
echo++$x;
$sql=mysqli_查询($con_db,“插入到'myMembers'(电子邮件、f_名称、l_名称、密码、zipcode、co_id、员工、评估_ct)值(“$email'、$f_名称'、$l_名称'、$password'、$zipcode'、$co_id'、$employee'、$assessment_ct'))或死亡(“狗屎不起作用”);
}else{//如果$ok=='true'则关闭
$result=print\u r($handle);
回显$handle。“
”; echo++$x; } }//关闭WHILE循环 fclose($handle); 如果($sql!==FALSE){ echo++$x; $successsg='您的数据库已成功导入!'; //打印(美元文件); //标题('excel_import.php'); }否则{ echo++$x; $errorMsg='抱歉!导入文件中有问题。'; //打印(美元文件); //标题('excel_import.php'); } }//如果(!为null($file))则关闭{ }//如果$post=submit,则关闭
用于提交上传文件的表单的HTML代码

<form enctype="multipart/form-data" method="POST" action="excel_import.php">
<div align="center">

<label>File Upload: </label><input type="file" id="csv_file"   accept=".csv" >
<p>Only Excel.CSV File Import</p>
<input type="submit" name="csv_file" class="btn myButton" value="Upload">
</div>
</form>
</div>
<div><?php echo $errorMsg; ?><?php echo $successMsg; ?></div>

文件上载:
仅导入Excel.CSV文件


您的提交按钮没有名称-因此未设置
$\u POST['submit']
。此外,
fclose($file)
应该是
fclose($handle)
。您应该使用
$handle!==FALSE
$sql!==FALSE
而不是
is\u null()

我看不到您在回显
$errorMsg
$successsg
-也许这就是您在屏幕上看不到错误消息的原因?它就在那里…就在其他html代码的下面…为了清晰起见,我会将其添加到代码中…感谢感谢感谢感谢…完成了这些更新,但没有更改功能。提交按钮单击时,就像它完成了一样有些东西但什么都没有进入数据库。好吧,你只需在文件的开头临时放置一个
var_dump($\u POST)
,以检查来自浏览器的内容。然后在每个IF语句之后放置一个
echo++$x
,以查看哪个语句没有发生。谢谢……我现在就这样做。数组(1){[“csv_file”]=>string(0)“}…所以它根本就没有捕获文件?更改了按钮以输入…现在错误变得更严重:数组(1){[“csv_文件”]=>string(6)“上载”}