¿Cómo puedo dar una advertencia y no proceder al comando si la columna en csv es menor o mayor que 4. Tengo este código para importar mi csv pero solo necesito 4 columnas para evitar la inserción no deseada de valores en mysql.
while(($csvdata = fgetcsv($handle,10000,","))!== FALSE){
if($i>0) {
$sha1 = $csvdata[0];
$vsdt = $csvdata[1];
$trendx = $csvdata[2];
$notes = $csvdata[3];
// Get record where sha1
$check_sha = "SELECT sha1 FROM jeremy_table_test WHERE sha1='".$sha1."'";
$check_shaquery = mysqli_query($con , $check_sha);
if($check_shaquery){
$sha_count = mysqli_num_rows($check_shaquery);
}
// Check if sha1 already in database
if(isset($sha_count) && $sha_count>0){
$sql = "UPDATE `jeremy_table_test` SET `date_sourced`='".$date."',`sha1`='".$sha1."',`vsdt`='".$vsdt."',`trendx`='".$trendx."',`notes`='".$notes."' WHERE sha1='".$sha1."'";
$query = mysqli_query($con , $sql);
}else{
$sql = "INSERT INTO jeremy_table_test (date_sourced,sha1,vsdt,trendx,notes) VALUES ('$date','$sha1','$vsdt','$trendx','$notes')";
$query = mysqli_query($con , $sql);
}
$c = $c+1;
error_reporting(E_ALL ^ E_NOTICE);
}
$i++;
error_reporting(E_ALL ^ E_NOTICE);
}
Por favor, dame una idea de cómo hacer esto. Es mi único problema
Simplemente necesita usar la count()
función al comienzo de su while {..}
ciclo.
while(($csvdata = fgetcsv($handle,10000,","))!== FALSE){
// If count of the array is not equal to 4
if ( count($csvdata) !== 4 ) {
// Throw exception and exit.
throw new Exception("Invalid CSV file. Column count not matching!");
exit();
}
....
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras