Uploaded image for project: 'Zeta Components'
  1. Zeta Components
  2. ZETACOMP-104

Database component for sqlabstraction which is query.php has a serious bug

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Component/s: Database
    • Labels:
    • Environment:
      Ubuntu Natty - AMD Athlon X2

      Description

      Database component which is on sqlabstraction folder ( query.php ) has a serious bug. Private properties of boundValues and boundParameters give an irk problem. they persisted ! somehow, reset method on inherited class cannot fully reset this variables.

      My quick fix is, just set those properties to protected attribute, and case closed

      ADDED:

      I attached my failed test if those properties still in private attribute. ( I am using Simpletest on this case ). My test failed on QuerySelectImpl on testingBindInteger section with some value on previous test - testingBindString - carried with, even if I'd already reset it.

      this is the simpletest code:

      {{{
      ...
      function testingBindString()

      { $expected = 2; $section = 'Norway'; $this->q->select( 'COUNT(*)' ) ->from( 'query_test' ) ->where( $this->e->eq( 'section', $this->q->bindParam( $section ) ) ); $statement = $this->q->prepare(); $statement->execute(); $this->assertEqual( $expected, (int) $statement->fetchColumn(0) ); $expected = 1; $section = 'Ukraine'; $statement = $this->q->prepare(); $statement->execute(); $this->assertEqual( $expected, (int) $statement->fetchColumn(0) ); /* $this->dump( $q->getQuery() ); */ /* $this->dump($this->e); */ }

      function testingBindInteger()

      { $expected = 7; $num = 0; $q = $this->q; $e = $this->e; $q->select( 'COUNT(*)' ) ->from( 'query_test' ) ->where( $e->gt( 'employees', $q->bindParam( $num ) ) ); $statement = $q->prepare(); $statement->execute(); $this->assertEqual( $expected, (int) $statement->fetchColumn(0) ); $expected = 3; $num = 100; $statement = $q->prepare(); $statement->execute(); $this->assertEqual( $expected, (int) $statement->fetchColumn(0) ); }

      ...
      }}}

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              freelancecode Suwandi Tanuwijaya
            • Votes:
              1 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:

                Time Tracking

                Estimated:
                Original Estimate - 1m
                1m
                Remaining:
                Remaining Estimate - 1m
                1m
                Logged:
                Time Spent - Not Specified
                Not Specified