Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL

    Ancora Buonasera,

    mi compare questo errore, il problema e che inserisce i dai nelle tablle fino ad un certo punto e poi improvvisamente mi viene fuori questo errore.
    i dati che gli passo sono giusti, perche li leggo da file...sono disperato con sta belin di funzione!!!!
    Facendo stamapre l'errore mi dice:
    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

    Voglio anche aggiungere che prima funzionava correttamente, mentre adesso caricando lo stesso file quando trova degli ' si incasina e si pianta.

    In attesa di eventuali risposte piango disperato
    Ciaooo

  2. #2
    Devi filtrare gli apici. Posta il codice.

  3. #3
    for ($i = 8; $i <= $data->sheets[0]['numRows'];$i++) {
    for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
    if($j==1) $Pid = $data->sheets[0]['cells'][$i][$j];
    else if($j==2) {
    $id = $data->sheets[0]['cells'][$i][$j];
    $indice = $i-8;
    $array_id[$indice] = $;
    }
    else if($j==3) $comune = $data->sheets[0]['cells'][$i][$j];
    else if($j==4) $provincia = $data->sheets[0]['cells'][$i][$j];
    else if($j==5) $regione = $data->sheets[0]['cells'][$i][$j];
    else if($j==6) {
    $distanza = $data->sheets[0]['cells'][$i][$j];
    if(!strcmp($distanza,">15")) $dist = 15;
    else $dist = floatval($distanza);
    }
    else if($j==7) $area = $data->sheets[0]['cells'][$i][$j];
    else if($j==8) $capacita = $data->sheets[0]['cells'][$i][$j];
    else if($j==9) $pressione = $data->sheets[0]['cells'][$i][$j];
    else if($j==16) $stato = $data->sheets[0]['cells'][$i][$j];
    }

    #GUARDO SE IL DATO CHE STO CERCANDO DI INSERIRE ESISTE GIA NEL DATABASE
    $verifica = "SELECT Id FROM geografia WHERE Id = $id";
    $v_res = mysql_query($verifica)or die(mysql_error());
    $v_row = mysql_fetch_array($res);
    if(!$v_row){
    #IL DATO NON ERA PRESENTE NEL DATABASE E QUINDI VADO AD INSERIRLO INSERISCO I DATI NELLE TABELLE
    $query = "INSERT IGNORE INTO geografia_provincia VALUES('{$comune}', '{$provincia}')";
    $ins = mysql_query($query)or die('ERRORE 1:'.mysql_error());
    $query = "INSERT IGNORE INTO geografia_regione VALUES('{$provincia}','{$regione}')";
    $ins = mysql_query($query)or die('ERRORE 2:'.mysql_error());
    $query = "INSERT INTO geografia_remi VALUES('{$Id}','{$data}','{$comune}')";
    $ins = mysql_query($query)or die('ERRORE 3:'.mysql_error());
    $query = "INSERT INTO remi_stato VALUES('{$Id}', '{$data}', '{$stato}')";
    $ins = mysql_query($query)or die('ERRORE 4:'.mysql_error());
    $query = "INSERT INTO remi_arearegione VALUES('{$Id}', '{$data}', '{$area}')";
    $ins = mysql_query($query)or die('ERRORE 5:'.mysql_error());
    $query = "INSERT IGNORE INTO anagrafica VALUES('{$Pid}','{$Trasportatore}','{$apertura}',' {$chiusura}')";
    $ins = mysql_query($query)or die('ERRORE 6:'.mysql_error());


    Nella prima query quando trova un apostrofo si blocca tutto....puo avere a che fare con il fatto che phpmyadmin mi dioce che non trova l'estensione mbstring???

  4. #4
    Usa la funzione mysql_real_escape_string() su tutti i dati da inserire nel database, esempio:

    Codice PHP:
    $comune $data->sheets[0]['cells'][$i][$j]; 
    diventa

    Codice PHP:
    $comune mysql_real_escape_string($data->sheets[0]['cells'][$i][$j]); 

  5. #5
    Ho provato il caricamento aggiungendo la funzione che mi hai suggerito...
    ...e ora gli apostrofi non sembrerebbero più un proble (Non ha ancora finito di caricare, però ha superato il punto dove ieri si bloccava...questo mi fa sperare!!!)
    Grazie mille del suggerimento
    Buona giornata

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.