Fetching PDO Large Data Object

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • FeelLikeANut@gmail.com

    Fetching PDO Large Data Object

    I'm using the example on the following page for selecting and fetching
    a large data object. <http://publib.boulder.ibm.com/infocenter/db2luw/
    v9/index.jsp?topic =/com.ibm.db2.udb .apdv.php.doc/doc/t0023504.htm>

    Here's what I've tried:


    $avatarFile = tempnam('', '');
    $avatarSteam = fopen($avatarFi le, 'wb');

    $stmt = $dbh->prepare('SELEC T user_avatar FROM users WHERE user_id =
    29');
    $stmt->execute();
    $stmt->bindColumn('us er_avatar', $avatarSteam, PDO::PARAM_LOB) ;
    $stmt->fetch(PDO::FET CH_BOUND);

    var_dump($cover Steam);


    Ideally, $coverSteam should be a stream to a temporary file containing
    the large data, but instead it's coming out as a string. And holding
    the large data as a string in memory is exactly what I'm trying to
    avoid. What am I doing wrong and how do I fix it? (I'm using SQLite,
    in case it matters.)
  • Jerry Stuckle

    #2
    Re: Fetching PDO Large Data Object

    FeelLikeANut@gm ail.com wrote:
    I'm using the example on the following page for selecting and fetching
    a large data object. <http://publib.boulder.ibm.com/infocenter/db2luw/
    v9/index.jsp?topic =/com.ibm.db2.udb .apdv.php.doc/doc/t0023504.htm>
    >
    Here's what I've tried:
    >
    >
    $avatarFile = tempnam('', '');
    $avatarSteam = fopen($avatarFi le, 'wb');
    >
    $stmt = $dbh->prepare('SELEC T user_avatar FROM users WHERE user_id =
    29');
    $stmt->execute();
    $stmt->bindColumn('us er_avatar', $avatarSteam, PDO::PARAM_LOB) ;
    $stmt->fetch(PDO::FET CH_BOUND);
    >
    var_dump($cover Steam);
    >
    >
    Ideally, $coverSteam should be a stream to a temporary file containing
    the large data, but instead it's coming out as a string. And holding
    the large data as a string in memory is exactly what I'm trying to
    avoid. What am I doing wrong and how do I fix it? (I'm using SQLite,
    in case it matters.)
    >
    Where does $coverStream come from? The first time you use it here is on
    the var_dump() call.

    --
    =============== ===
    Remove the "x" from my email address
    Jerry Stuckle
    JDS Computer Training Corp.
    jstucklex@attgl obal.net
    =============== ===

    Comment

    • Jeff.M

      #3
      Re: Fetching PDO Large Data Object

      On May 7, 3:15 pm, Jerry Stuckle <jstuck...@attg lobal.netwrote:
      FeelLikeA...@gm ail.com wrote:
      I'm using the example on the following page for selecting and fetching
      a large data object. <http://publib.boulder.ibm.com/infocenter/db2luw/
      v9/index.jsp?topic =/com.ibm.db2.udb .apdv.php.doc/doc/t0023504.htm>
      >
      Here's what I've tried:
      >
      $avatarFile = tempnam('', '');
      $avatarSteam = fopen($avatarFi le, 'wb');
      >
      $stmt = $dbh->prepare('SELEC T user_avatar FROM users WHERE user_id =
      29');
      $stmt->execute();
      $stmt->bindColumn('us er_avatar', $avatarSteam, PDO::PARAM_LOB) ;
      $stmt->fetch(PDO::FET CH_BOUND);
      >
      var_dump($cover Steam);
      >
      Ideally, $coverSteam should be a stream to a temporary file containing
      the large data, but instead it's coming out as a string. And holding
      the large data as a string in memory is exactly what I'm trying to
      avoid. What am I doing wrong and how do I fix it? (I'm using SQLite,
      in case it matters.)
      >
      Where does $coverStream come from? The first time you use it here is on
      the var_dump() call.
      >
      --
      =============== ===
      Remove the "x" from my email address
      Jerry Stuckle
      JDS Computer Training Corp.
      jstuck...@attgl obal.net
      =============== ===
      Sorry. It was a mistake in the post. Shoulda been $avatarSteam.

      Comment

      • FeelLikeANut@gmail.com

        #4
        Re: Fetching PDO Large Data Object

        On May 7, 3:15 pm, Jerry Stuckle <jstuck...@attg lobal.netwrote:
        FeelLikeA...@gm ail.com wrote:
        I'm using the example on the following page for selecting and fetching
        a large data object. <http://publib.boulder.ibm.com/infocenter/db2luw/
        v9/index.jsp?topic =/com.ibm.db2.udb .apdv.php.doc/doc/t0023504.htm>
        >
        Here's what I've tried:
        >
        $avatarFile = tempnam('', '');
        $avatarSteam = fopen($avatarFi le, 'wb');
        >
        $stmt = $dbh->prepare('SELEC T user_avatar FROM users WHERE user_id =
        29');
        $stmt->execute();
        $stmt->bindColumn('us er_avatar', $avatarSteam, PDO::PARAM_LOB) ;
        $stmt->fetch(PDO::FET CH_BOUND);
        >
        var_dump($cover Steam);
        >
        Ideally, $coverSteam should be a stream to a temporary file containing
        the large data, but instead it's coming out as a string. And holding
        the large data as a string in memory is exactly what I'm trying to
        avoid. What am I doing wrong and how do I fix it? (I'm using SQLite,
        in case it matters.)
        >
        Where does $coverStream come from? The first time you use it here is on
        the var_dump() call.
        >
        --
        =============== ===
        Remove the "x" from my email address
        Jerry Stuckle
        JDS Computer Training Corp.
        jstuck...@attgl obal.net
        =============== ===
        Sorry. That was a mistake in the post. It should be $avatarSteam.

        Comment

        • Rik Wasmus

          #5
          Re: Fetching PDO Large Data Object

          On Wed, 07 May 2008 20:43:45 +0200, <FeelLikeANut@g mail.comwrote:
          I'm using the example on the following page for selecting and fetching
          a large data object. <http://publib.boulder.ibm.com/infocenter/db2luw/
          v9/index.jsp?topic =/com.ibm.db2.udb .apdv.php.doc/doc/t0023504.htm>
          >
          Here's what I've tried:
          >
          >
          $avatarFile = tempnam('', '');
          $avatarSteam = fopen($avatarFi le, 'wb');
          >
          $stmt = $dbh->prepare('SELEC T user_avatar FROM users WHERE user_id =
          29');
          $stmt->execute();
          $stmt->bindColumn('us er_avatar', $avatarSteam, PDO::PARAM_LOB) ;
          $stmt->fetch(PDO::FET CH_BOUND);
          >
          var_dump($cover Steam);
          >
          Ideally, $coverSteam should be a stream to a temporary file containing
          the large data, but instead it's coming out as a string. And holding
          the large data as a string in memory is exactly what I'm trying to
          avoid. What am I doing wrong and how do I fix it? (I'm using SQLite,
          in case it matters.)
          I'll see if I can reproduce this tomorrow, in the mean while: a big report
          that isn't yet solved seems to be filed:

          --
          Rik Wasmus

          Comment

          • Rik Wasmus

            #6
            Re: Fetching PDO Large Data Object

            On Thu, 08 May 2008 03:26:24 +0200, Rik Wasmus
            <luiheidsgoeroe @hotmail.comwro te:
            On Wed, 07 May 2008 20:43:45 +0200, <FeelLikeANut@g mail.comwrote:
            >
            >I'm using the example on the following page for selecting and fetching
            >a large data object. <http://publib.boulder.ibm.com/infocenter/db2luw/
            >v9/index.jsp?topic =/com.ibm.db2.udb .apdv.php.doc/doc/t0023504.htm>
            >>
            >Here's what I've tried:
            >>
            >>
            >$avatarFile = tempnam('', '');
            >$avatarSteam = fopen($avatarFi le, 'wb');
            >>
            >$stmt = $dbh->prepare('SELEC T user_avatar FROM users WHERE user_id =
            >29');
            >$stmt->execute();
            >$stmt->bindColumn('us er_avatar', $avatarSteam, PDO::PARAM_LOB) ;
            >$stmt->fetch(PDO::FET CH_BOUND);
            >>
            >var_dump($cove rSteam);
            >>
            >Ideally, $coverSteam should be a stream to a temporary file containing
            >the large data, but instead it's coming out as a string. And holding
            >the large data as a string in memory is exactly what I'm trying to
            >avoid. What am I doing wrong and how do I fix it? (I'm using SQLite,
            >in case it matters.)
            >
            I'll see if I can reproduce this tomorrow, in the mean while: a big
            report that isn't yet solved seems to be filed:
            http://bugs.php.net/bug.php?id=40913
            s/big/bug/

            It's late.....
            --
            Rik Wasmus

            Comment

            • Jerry Stuckle

              #7
              Re: Fetching PDO Large Data Object

              Rik Wasmus wrote:
              On Thu, 08 May 2008 03:26:24 +0200, Rik Wasmus
              <luiheidsgoeroe @hotmail.comwro te:
              >
              >On Wed, 07 May 2008 20:43:45 +0200, <FeelLikeANut@g mail.comwrote:
              >>
              >>I'm using the example on the following page for selecting and fetching
              >>a large data object. <http://publib.boulder.ibm.com/infocenter/db2luw/
              >>v9/index.jsp?topic =/com.ibm.db2.udb .apdv.php.doc/doc/t0023504.htm>
              >>>
              >>Here's what I've tried:
              >>>
              >>>
              >>$avatarFile = tempnam('', '');
              >>$avatarStea m = fopen($avatarFi le, 'wb');
              >>>
              >>$stmt = $dbh->prepare('SELEC T user_avatar FROM users WHERE user_id =
              >>29');
              >>$stmt->execute();
              >>$stmt->bindColumn('us er_avatar', $avatarSteam, PDO::PARAM_LOB) ;
              >>$stmt->fetch(PDO::FET CH_BOUND);
              >>>
              >>var_dump($cov erSteam);
              >>>
              >>Ideally, $coverSteam should be a stream to a temporary file containing
              >>the large data, but instead it's coming out as a string. And holding
              >>the large data as a string in memory is exactly what I'm trying to
              >>avoid. What am I doing wrong and how do I fix it? (I'm using SQLite,
              >>in case it matters.)
              >>
              >I'll see if I can reproduce this tomorrow, in the mean while: a big
              >report that isn't yet solved seems to be filed:
              >http://bugs.php.net/bug.php?id=40913
              >
              s/big/bug/
              >
              It's late.....
              Hmmm, over a year old and just assigned? Doesn't seem to be a very high
              priority with them. Or maybe it's really tough to fix.

              --
              =============== ===
              Remove the "x" from my email address
              Jerry Stuckle
              JDS Computer Training Corp.
              jstucklex@attgl obal.net
              =============== ===

              Comment

              • Rik Wasmus

                #8
                Re: Fetching PDO Large Data Object

                On Thu, 08 May 2008 14:52:56 +0200, Jerry Stuckle
                <jstucklex@attg lobal.netwrote:
                Rik Wasmus wrote:
                >On Thu, 08 May 2008 03:26:24 +0200, Rik Wasmus
                ><luiheidsgoero e@hotmail.comwr ote:
                >>
                >>On Wed, 07 May 2008 20:43:45 +0200, <FeelLikeANut@g mail.comwrote:
                >>>
                >>>I'm using the example on the following page for selecting and fetching
                >>>a large data object. <http://publib.boulder.ibm.com/infocenter/db2luw/
                >>>v9/index.jsp?topic =/com.ibm.db2.udb .apdv.php.doc/doc/t0023504.htm>
                >>>>
                >>>Here's what I've tried:
                >>>>
                >>>>
                >>>$avatarFil e = tempnam('', '');
                >>>$avatarSte am = fopen($avatarFi le, 'wb');
                >>>>
                >>>$stmt = $dbh->prepare('SELEC T user_avatar FROM users WHERE user_id =
                >>>29');
                >>>$stmt->execute();
                >>>$stmt->bindColumn('us er_avatar', $avatarSteam, PDO::PARAM_LOB) ;
                >>>$stmt->fetch(PDO::FET CH_BOUND);
                >>>>
                >>>var_dump($co verSteam);
                >>>>
                >>>Ideally, $coverSteam should be a stream to a temporary file containing
                >>>the large data, but instead it's coming out as a string. And holding
                >>>the large data as a string in memory is exactly what I'm trying to
                >>>avoid. What am I doing wrong and how do I fix it? (I'm using SQLite,
                >>>in case it matters.)
                >>>
                >>I'll see if I can reproduce this tomorrow, in the mean while: a big
                >>report that isn't yet solved seems to be filed:
                >>http://bugs.php.net/bug.php?id=40913
                > s/big/bug/
                > It's late.....
                >
                Hmmm, over a year old and just assigned? Doesn't seem to be a very high
                priority with them. Or maybe it's really tough to fix.
                Indeed. Just verified it here, it still doesn't work in 5.2.4. A shame, I
                was just going to use it in a project next week... It seems almost every
                PDO driver has had this issue, however, for MySQL it's not fixed.

                Perhaps the OP can abuse INTO DUMPFILE in MySQL if both webserver &
                database are on the same machine.
                --
                Rik Wasmus

                Comment

                Working...