Debian squeeze, mysql  Ver 14.14 Distrib 5.1.49, for debian-linux-gnu
(i486) using readline 6.1, PHP 5.3.3-2 with Suhosin-Patch (cli) (built:
Oct 21 2010 18:58:27).

I'm not sure if this group or the php one is more appropriate but
thought I would try here first as it is perhaps a mysql setting I am
missing.

I have been unable to get prepared statements to store a blob.

using this test code:-

function saveImage($event)
{
        $stmt = getDB()->prepare("INSERT INTO images (image) VALUES (?)");
        $null = NULL;
        $stmt->bind_param("b", $null);
        $fp = fopen("common-images/takeaway.png", "r");
        while (!feof($fp)) {
                $stmt->send_long_data(0, fread($fp, 8192)); /* I also tried 
get_file_contents */
        }
        fclose($fp);
        $stmt->execute();
        logtext($stmt->error);
}


I get the following error in my home brew log file: "Incorrect arguments to 
mysqld_stmt_execute"

I have checked that fp is valid.

My table is defined as follows:-

,----
| CREATE TABLE `images` (
|   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|   `fkey` int(10) unsigned DEFAULT NULL,
|   `image` blob,
|   `name` varchar(30) NOT NULL,
|   `type` varchar(30) NOT NULL,
|   PRIMARY KEY (`id`),
|   KEY `deleteimages` (`fkey`),
|   CONSTRAINT `deleteimages` FOREIGN KEY (`fkey`) REFERENCES `events` (`id`) 
ON DELETE CASCADE
| ) ENGINE=InnoDB DEFAULT CHARSET=utf8
`----

I'm sure it must be something glaringly obvious but being a bit of a
noob to mysql I'm not sure what to do to narrow it down. I can set the
blob field directly. Its the send_long_data that seems to cause the arg
error at the execute phase.

Any debugging hits/configure hints would be much appreciated.



-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql?unsub=arch...@jab.org

Reply via email to