Re: Large binary objects in MySQL - problem
| From: | Tommy Pham | Date: | Tue, 22 Feb 2011 23:48:12 +0000 |
| Subject: | Re: Large binary objects in MySQL - problem | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-311534@lists.php.net to get a copy of this message | ||
On Tue, Feb 22, 2011 at 1:07 PM, Florin Jurcovici
<florin.jurcovici@gmail.com> wrote:
> Hi.
>
> I use PDO and have written myself a class to abstract the database a bit.
>
> It has a method for querying the database specifically for large
> objects, like this:
>
> $connection = $this->getConnection(); // what's returned is a
> PDOStatement, and a transaction is already started
> $statement = $connection->prepare($sql);
> $result = true;
> foreach ($parameters as $key => $parameter)
> $statement->bindValue($key, $parameter->value,
> $parameter->type);
> try
> {
> $result = $statement->execute();
> }
> catch(Exception $ex)
Wrong catch? [1]
Regards,
Tommy
[1] http://php.net/pdoexception
> {
> $statement->closeCursor();
> throw $ex;
> }
> if (!$result)
> {
> $statement->closeCursor();
> throw new Exception("SQL statement failed:
> ".$sql);
> }
> $data = array();
> $receiverRow = array();
> $i = 0;
> foreach ($columns as $column => $type)
> {
> $receiverRow[$column] = NULL; // this is probably not
> necessary, I
> added it after it didn't work without, but it didn't help
> $statement->bindColumn($i++, &$receiverRow[$column],
> $type);
> }
> while ($statement->fetch(PDO::FETCH_BOUND))
> {
> $row = array();
> foreach ($columns as $column => $type)
> $row[$column] = $receiverRow[$column];
> $data[] = $row;
> }
> $statement->closeCursor();
> return $data;
>
> The problem is, after $statement-> execute() the first fetch returns
> false, although there's definitely a record in there -
> $statement->rowCount() says 1, if called before $statement->fetch().
> No exception is thrown, $statement->errorInfo() and
> $statement->errorCode don't contain anything useful.
>
> What am I doing wrong?
>
> br,
>
> flj
>
> --
> Fine counsel is confusing, but example is always clear. (Edgar A.
> Guest, The Light of Faith)
>