2015-09-01 4 views
0

Я пытаюсь загрузить файл excel на свой сайт и сохранить данные в моей базе данных, однако я не могу этого сделать и получаю: Неустранимая ошибка: вызов неопределенного метода mysqli :: fetch_assoc() ... Но я не уверен, как с этим справиться, и я не нашел вопроса, связанного с SO, никакой помощью?Не удалось распознать метод fetch_assoc

function getSchedule($filepath,$con,$filename){ 

    require_once 'excel/PHPExcel/IOFactory.php'; 
    $objPHPExcel = PHPExcel_IOFactory::load($filepath); 
    foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) { 
     $worksheetTitle  = $worksheet->getTitle(); 
     $highestRow   = $worksheet->getHighestRow(); // e.g. 10 
     $highestColumn  = $worksheet->getHighestColumn(); // e.g 'F' 
     $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); 

     list($location, $date) = explode('-', $filename, 2); 
     $LastChange = date('d/m/Y h:i:s'); 
     $Status='Open'; 

$servername = "localhost"; 
$username = "root"; 
$password = "Js"; 
$dbname = "jr"; 

$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 

if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sql = "SELECT * FROM Schedule"; 
$conn->query($sql); 


    // output data of each row 
    while($row = $conn->fetch_assoc()) { 


     $sql1="DELETE FROM `schedule` WHERE " . $row["Date"]. "='$date'"; 
     $result = mysqli_query($conn,$sql1); 

    } 

$conn->close(); 


     for ($row = 3; $row <= $highestRow; ++ $row) { 
      $sql="INSERT INTO `schedule` (`Status`,`LastChange`, `Location`,`Date`,`AFNumber`,`Name`,`01-IN`, `01-OUT`, `02-IN`, `02-OUT`, `03-IN`, `03-OUT`, `04-IN`, `04-OUT`, `05-IN`, `05-OUT`, `06-IN`, `06-OUT`, `07-IN`, `07-OUT`, `08-IN`, `08-OUT`, `09-IN`, `09-OUT`, `10-IN`, `10-OUT`, `11-IN`, `11-OUT`, `12-IN`, `12-OUT`, `13-IN`, `13-OUT`, `14-IN`, `14-OUT`, `15-IN`, `15-OUT`, `16-IN`, `16-OUT`, `17-IN`, `17-OUT`, `18-IN`, `18-OUT`, `19-IN`, `19-OUT`, `20-IN`, `20-OUT`, `21-IN`, `21-OUT`, `22-IN`, `22-OUT`, `23-IN`, `23-OUT`, `24-IN`, `24-OUT`, `25-IN`, `25-OUT`, `26-IN`, `26-OUT`, `27-IN`, `27-OUT`, `28-IN`, `28-OUT`, `29-IN`, `29-OUT`, `30-IN`, `30-OUT`, `31-IN`, `31-OUT`) VALUES ('".$Status."', '".$LastChange."','".$location."','".$date."',"; 
      for ($col = 0; $col < ($highestColumnIndex -1); ++ $col) { 
       $cell = $worksheet->getCellByColumnAndRow($col, $row); 
       $val = $cell->getValue(); 
       if($col==($highestColumnIndex -2)){ 
        $sql.="'$val'"; 
       }else{ 
        $sql.="'$val', ";} 
      } 
      echo "Index:".$highestColumnIndex."<br>"; 
      if($highestColumnIndex < 63){ 
       $temp = 63 - $highestColumnIndex; 
       for($i = 1;$i <= $temp; $i++){ 
        if($i == $temp){ 
         $sql.=",''"; 
        } else{ 
        $sql.=", '',"; 
        } 
       } 
      } 
      $sql .=")"; 
      if ($con->query($sql) === TRUE) { 
      } else { 
       echo "<br><br>Error: " . $sql . "<br>" . $con->error; 
      } 
     }//End For Each Row 
    }//End For Each Worksheet 
}//End getHours Function 

ответ

0

От php.net:

array mysqli_result::fetch_assoc (void)

Это означает, что вы должны предоставить ему в результате запроса, а не соединение. Измените код на это, и он должен работать

$results = $conn->query($sql); //assign query to a variable and get mysqli_result in return 

    while($row = $results->fetch_assoc()) { //use that in the while loop 
+0

я получаю настоящее Фатальная ошибка: Вызов для функции-члена fetch_assoc() на boolean – dan

+0

@dan Это означает, что ваш запрос имеет ошибку, а вместо mysqli_result он возвращает FALSE. Do 'var_dump ($ conn -> error);' after '$ result = $ conn-> query ($ sql);' чтобы увидеть, что с ним не так – DannyPhantom

+0

Я получаю строку (0) "" что это значит ? – dan

0

Вы перезапись объект соединения $conn .Использование

$result = $conn->query($sql); 
while($row = $result->fetch_assoc()) { 
0

Попробуйте это:

$sql = "SELECT * FROM Schedule"; 
    $result = $conn->query($sql); 


// output data of each row 
while($row = $result->fetch_assoc()) { 
Смежные вопросы