Hi All
I don’t understand how to save an image to a mySQL table based on the following 
form. I am trying to do this using Prepared Statements.  All the fields except 
the image file itself save in the database.  Right now I have $file as the 
variable when binding the values.  What should it be?  Ron

===
<form action="add_my_image.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file"><br>
<input type="submit" name="submit" value="submit">
</form>
===

mySQL table structure:
===
reference – INT 10 auto_increment primary
caption – VARCHAR 250
image_type – VARCHAR 100
image_size – INT 10
image_name – VARCHAR 100
image – LONGBLOB
===

Prepared Statement:

===
# mySQL query
        
    $query = "INSERT INTO `my_images` ( `reference` , `caption` , `image_type` 
, `image_size` , `image_name` , `image` ) VALUES ( NULL , :caption , 
:image_type , :image_size , :image_name , :image );";
    
# apply query to Prepared Statement
        
    if($stmt = $dbh->prepare( $query )) {
        
# bind variables

        $stmt->bindValue(':caption', 'Test Caption', PDO::PARAM_STR);
        $stmt->bindValue(':image_type', $_FILES["file"]["type"], 
PDO::PARAM_STR);
        $stmt->bindValue(':image_size', $_FILES["file"]["size"], 
PDO::PARAM_INT);
        $stmt->bindValue(':image_name', $_FILES["file"]["name"], 
PDO::PARAM_STR);
        $stmt->bindValue(':image', $file, PDO::PARAM_STR);
        
# execute query

            if ( $stmt->execute() or die(print_r($stmt->errorInfo(), true)) ) {
        
# retrieve auto_increment value
        
                $new_record_reference = $dbh->lastInsertId();
                
            }
        
    }
===


Ron Piggott



www.TheVerseOfTheDay.info 

Reply via email to