Adding to MySQL image from dir list, no reaction no error

Good day to you all,
I’m trying to read a directory and for each file add : path, name, ext, width and height to my database.

Right now the only thing I had succeed in to list the image directory.

I have tried out to add it to the database but no reaction, nothing is added to the db, no error ?

Here is my code:


  <?php


// Connect to database


$con = mysql_connect("localhost","111",111");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("images", $con);


  
  $imgdir = 'Images/'; // the directory, where your images are stored
  $realimgdir = "Images/";
  $allowed_types = array('png','jpg','jpeg','gif','bmp'); // list of filetypes you want to show
  
  $dimg = opendir($imgdir);
  while($imgfile = readdir($dimg))
  {
   if(in_array(strtolower(substr($imgfile,-3)),$allowed_types))
   {
    $a_img[] = $imgfile;
    sort($a_img);
    reset ($a_img);
   }
  }
  
  $totimg = count($a_img); // total image number
   
  for($x=0; $x < $totimg; $x++)
  {
   $size = getimagesize($imgdir.'/'.$a_img[$x]);
  
   // do whatever
   $halfwidth = ceil($size[0]/2);
   $halfheight = ceil($size[1]/2);

$rid = $realimgdir;
$fname = substr($a_img[$x],0, -4);
$extens = substr($a_img[$x], -3);
$iwidth = $size[0];
$iheight = $size[1];

   
mysql_query("INSERT INTO gallery (id, path, name, ext, width, height)
VALUES ('$rid', '$fname', '$extens', '$iwidth', '$iheight'");  

   echo '<tr title="'.$a_img[$x].'" onMouseOver="this.className=\\'highlight\\'" onMouseOut="this.className=\\'normal\\'"></td><td>'.$realimgdir.'</td><td>'.substr($a_img[$x],0, -4).'</td><td style="text-align:center;"> '.substr($a_img[$x], -3).' </td><td style="text-align:center;"> '.$size[0].' </td><td style="text-align:center;"> '.$size[1].'</td></tr>';
  }
  
  ?>
</table> 

Somebody have an idea

There are a couple quirks (like sorting the array every time you add an element to it, instead of just once, or no times as the order isn’t important to your other code).

But the main problem is that your query is wrong (missing closing parentheses, numeric values in quotes) and you don’t check if the query was successful.

Try this:


$query = "INSERT INTO gallery (id, path, name, ext, width, height) 
VALUES ('$rid', '$fname', '$extens', $iwidth, $iheight)";
$result = mysql_query($query);
if (!$result) {
  echo "The query [$query] failed with error [" . mysql_error() . "]");
}

That’ll also make it easy to see if anything else is wrong, since you’ll see the constructed query if it fails.