【问题标题】:Error 1064, with csv, sql and php错误 1064,带有 csv、sql 和 php
【发布时间】:2013-12-13 10:50:31
【问题描述】:

谁能帮帮我。 这是代码:

public function csv_file()
{

    $file = $_FILES['importeren']['tmp_name'];
    $handle = fopen($file,"r");   
    $filecsv = fgetcsv($handle,1000, ";"); 

    foreach($filecsv as $csv)
    {


        $password = rand(100000,999999);
        //echo $password . '</br>' ;

        $username = $csv;
        $studentnummer = $csv;
        $klas = $csv;
      /*  $voornaam = $csv[3];
        $tv = $csv[4];
        $achternaam = $csv[5];*/

   $query = "INSERT INTO user (fk_klas_ID,admin_ID,username,password,studentnummer) "
                            . "VALUES ('$klas','0','$username', sha1('$password'),$studentnummer');"; 
   $result = $this->db->query($query);
   return $filecsv;
}
}

我收到了这个错误:

Error Number: 1064

You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL        
server version for the right syntax to use near '')' at line 1

INSERT INTO user (fk_klas_ID,admin_ID,username,password,studentnummer) 
VALUES ('Richard','0','Richard', sha1('710565'),Richard');

Filename: C:\xampp\htdocs\codeigniter\system\database\DB_driver.php

Line Number: 330

我希望您可以提供一个 csv 文件,以便内容进入数据库。 我正在使用 codeigniter

对不起我的英语不好

【问题讨论】:

  • 此处突出显示的语法准确显示了您的问题所在:第二个引号 ($studentnummer) Richard
  • 但这只是csv文件中的一个名字
  • 其他问题:您没有转义从 CSV 读取的任何字符串值,或使用准备好的语句,因此任何这些字符串值中的引号字符都会给您带来问题
  • 其他问题:您正在使用 sha1 进行密码散列?!?
  • @ShankarDamodaran 我没有给你的参考资料,但仅使用 SHA1 散列密码是不够的:它太快了。使用快速计算机(例如,使用快速 GPU),您可以非常快速地破解 SHA1 哈希密码(在数小时内,几个月前我自己就做到了)。您需要一个具有相当高成本(和盐)的强大哈希算法才能足够安全。链接的函数会处理这一切。

标签: php sql file codeigniter csv


【解决方案1】:

你错过了$studentnummer中的一个引号。所以像这样更改查询

   $query = "INSERT INTO user (fk_klas_ID,admin_ID,username,password,studentnummer) "
                            . "VALUES ('$klas','0','$username', sha1('$password'),'$studentnummer');";

【讨论】:

    猜你喜欢
    • 2015-07-04
    • 1970-01-01
    • 2020-12-27
    • 1970-01-01
    • 1970-01-01
    • 2016-08-06
    • 2014-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多