nome file che contiene punto passato come parametro a query

AndreaCerre

Utente Attivo
7 Giu 2020
35
0
6
Ciao,

ho un problema devo eseguire la query sottostante passano il nome del file con la variabile $userfile_name.
Il problema è che il nome del file contiene il carattere "." e suppongo che questo dia origine ad un errore nella query

Il file ha nome ad esempio AAA.2101

l'errore

Codice:
$userfile_name = $_FILES['bir']['name'];

$qfileinseriti = $mysqli -> query("SELECT NOMFILE FROM tbfile WHERE NOMFILE = " .$userfile_name. ";");

$rfileins = mysqli_fetch_array($qfileinseriti);

$rowcount=mysqli_num_rows($qfileinseriti);

echo $rowcount;
 

Hormus

Utente Attivo
26 Giu 2020
83
10
8
PHP:
$userfile_name = $_FILES['bir']['name'];

If(($qfileinseriti = $mysqli -> query("SELECT NOMFILE FROM tbfile WHERE NOMFILE = '$userfile_name'")) !== false){
if(is_object($qfileinseriti)) {
$rfileins = mysqli_fetch_assoc($qfileinseriti);

$rowcount=mysqli_num_rows($qfileinseriti);
echo $rowcount;
} else {
echo 'empty';
}
} elseif($qfileinseriti == false) {
printf("Error message: %s\n", mysqli_error($mysqli));
}
Se il valore stringa è racchiuso in apici singoli ti funziona?
EDIT: sostituito con mysqli_fetch_row($qfileinseriti)
EDIT2: anche con mysqli_fetch_assoc($qfileinseriti) funziona.
In ogni caso una stringa letterale deve almeno essere racchiusa da apici singolo.
 
Ultima modifica:

Peterrey76

Utente Attivo
27 Mar 2020
37
0
6
Salve ragazzi il problema sono gli apici ho provato e funziona. il problema potrebbe esserci in lettura perché essendo contenuto un punto e poi un'altra porzione di nome del file la quale potrebbe essere letta come un estensione ovviamente non valida.
 

AndreaCerre

Utente Attivo
7 Giu 2020
35
0
6
Quindi come mi devo comportare con il parametro userfile_name, come posso trattarlo per farlo leggere correttamente?
 

Peterrey76

Utente Attivo
27 Mar 2020
37
0
6
Perché viene creato in automatico da un altro sistema
Benissimo ma non puoi riscriverlo prima di passarlo al database per cui successivamente andrà a letto come tale? Chiaramente anche nella folder andrà copiato con il nuovo nome. Puoi postare un esempio del nome del file?
 

AndreaCerre

Utente Attivo
7 Giu 2020
35
0
6
Si posso usare questo metodo per ovviare alla scrittura/lettura nel db.

Ma il problema mi si ripropone quando voglio utilizzare la funzione filectime (userfile_name) per recuperarne la data di creazione
 

Hormus

Utente Attivo
26 Giu 2020
83
10
8
Scusa intanto ti funziona?
Se poi mostri il codice e tu vuoi posso adattarlo.
 

Peterrey76

Utente Attivo
27 Mar 2020
37
0
6
Si posso usare questo metodo per ovviare alla scrittura/lettura nel db.

Ma il problema mi si ripropone quando voglio utilizzare la funzione filectime (userfile_name) per recuperarne la data di creazione
Se nel nome del file c'è un filectime non devi riscriverlo con una nuova data, raccogli semplicemente il nome del file esplodi il punto metti insieme l'informazione 0 e l'informazione 1 e ottieni il nome del file senza il punto conservando il filectime. Ovviamente in questo caso avrai a che fare anche con il punto dell'estensione ma se posti il codice è meglio. AAA.2101: aaa sarebbe il filectime?
 
Ultima modifica:

Hormus

Utente Attivo
26 Giu 2020
83
10
8
Appunto forse non hai letto tutta la discussione avevo già risposto che con my SQL era tutto ok il problema è quindi il punto ma in fase di lettura.
Avevo dato per scontato lettura mysql, scusami.
Invece di fare giri semplicemente utilizza mysqli_fetch_row dal momento che nella sua query recupera un singolo dato
 

AndreaCerre

Utente Attivo
7 Giu 2020
35
0
6
riprovato seguendo i vari metodi ma niente da fare,
ho fatto prova su mysql per vedere se la query funzionava e non funziona,
da empty set come risultato
 

Allegati

Peterrey76

Utente Attivo
27 Mar 2020
37
0
6
riprovato seguendo i vari metodi ma niente da fare,
ho fatto prova su mysql per vedere se la query funzionava e non funziona,
da empty set come risultato
Andrea fai una cosa posta tutto il codice anche con i parametri della tabella in modo tale che possiamo cercare di aiutarti ok?
 

Hormus

Utente Attivo
26 Giu 2020
83
10
8
Concordo oltretutto dimmi se vuoi recuperare il testo archiviato o un file di mysql io penso vuoi recuperare un file ma la sintassi è sbagliata.
 

AndreaCerre

Utente Attivo
7 Giu 2020
35
0
6
questo il codice, voglio recuperare il nome completo del file per verificare se già presente nella tabella

Codice:
<?php
set_time_limit(120);
include ("config_prova.php");


$mysqli = new mysqli ($host, $db_user, $db_psw, $db_name);

if(!$mysqli)
    {
    die ("Errore critico di connessione al database" . mysqli_error());     
    }

//print_r($_FILES); //stampa i dettagli del file <br>
$userfile_name = $_FILES['birdfn']['name'];
echo $userfile_name = $_FILES['birdfn']['name'];
echo "\n<hr>\n\n";


$qfileinseriti = $mysqli -> query('SELECT NOMFILE FROM tbfilebirdfn WHERE NOMFILE = '.$userfile_name.';');
$rfileins = mysqli_fetch_row($qfileinseriti);

$rowcount=mysqli_num_rows($qfileinseriti);

echo $rowcount;

?>