Re: Error to insert in firebird

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



If the variable $param is a array it does not work

//Not working
$param = array('1', 'test1');
$this->rs = ibase_execute($qr,$param);

//Yes Working
$param1 = "1";
$param2 = "test1";
$this->rs = ibase_execute($qr,$param1,$param2);

Best Regards
========
| ISMAEL |
========
----- Original Message ----- 
  From: Tsvetan Nikolov 
  To: Ismael L. Donis Garcia 
  Cc: PHP-General 
  Sent: Wednesday, November 06, 2013 4:38 PM
  Subject: Re:  Error to insert in firebird


  set $param to be an array of values




  On Wed, Nov 6, 2013 at 10:04 PM, Ismael L. Donis Garcia <ismael@xxxxxxxxxxxxxx> wrote:

    I already discovered the problem, now I am going to think as solving .


    $sql = "insert into scele (codigo, nombre) values (?, ?)";


    $tr = ibase_trans(IBASE_WRITE,$this->cn);
    $qr = ibase_prepare($this->cn,$tr,$sql);


    //Not working
    $param = "1, Test1";
    $this->rs = ibase_execute($qr,$param);

    //Yes Working
    $param1 = "1";
    $param2 = "test1";
    $this->rs = ibase_execute($qr,$param1,$param2);

    But as it is a class not himself as dividing the variable in so many variables according to parameters that come.

    public function actualizar($sql,$param){


    Best Regards
    ========
    | ISMAEL |
    ========

    ----- Original Message -----
      From: Tsvetan Nikolov
      To: Ismael L. Donis Garcia
      Cc: PHP-General

      Sent: Tuesday, November 05, 2013 2:57 PM
      Subject: Re:  Error to insert in firebird


      Oh yeah and you may want to try declaring your $param as array. $param = array('1', 'Test1');




      On Tue, Nov 5, 2013 at 8:55 PM, Tsvetan Nikolov <live.webscore@xxxxxxxxx> wrote:

        Sorry I have no experience with firebird commands.


        Just read through the official documentation. If I am to take a blind guess I would point to ibase_prepare($tr,$param); and would say that the variable $param does not belong there but rather in ibase_execute. What I would try is something like this:


        $sql = "insert into scele (codigo, nombre) values (?, ?)";
        $param = "1, Test1";

        $tr = ibase_trans(IBASE_WRITE,$this->cn);

        $qr = ibase_prepare($this->cn, $tr, $sql);
        $this->rs = ibase_execute($qr,$param);
        .......


        If this doesn't work remove the parameters and put static values and see if that works...etc... you have to really debug line by line.


        Good luck!







        On Tue, Nov 5, 2013 at 8:30 PM, Ismael L. Donis Garcia <ismael@xxxxxxxxxxxxxx> wrote:

          $sql = "insert into scele (codigo, nombre) values (?, ?)";
          $param = "1, Test1";

          $tr = ibase_trans(IBASE_WRITE,$this->cn);
          $qr = ibase_prepare($tr,$param);

          echo ibase_errmsg() ."<br>";
          Dynamic SQL Error SQL error code = -104 Token unknown - line 1, column 1 2

          But I do not understand as it can be the error.


          Best Regards
          ========
          | ISMAEL |
          ========


          ----- Original Message -----
            From: Tsvetan Nikolov
            To: Ismael L. Donis Garcia
            Cc: PHP-General

            Sent: Tuesday, November 05, 2013 1:53 PM
            Subject: Re:  Error to insert in firebird


            Well,

            in the documentation it says that if the query raises an error, returns FALSE. You should start calling ibase_errmsg to track where the error is.




            On Tue, Nov 5, 2013 at 7:34 PM, Ismael L. Donis Garcia <ismael@xxxxxxxxxxxxxx> wrote:

                ----- Original Message ----- From: Tsvetan Nikolov
                To: Ismael L. Donis Garcia
                Cc: PHP-General
                Sent: Tuesday, November 05, 2013 12:45 PM
                Subject: Re:  Error to insert in firebird


                Do you commit your transaction?


              Yes

              The complete function is:

              public function actualizar($sql,$param){
               if ($this->cn){

              //for example:

              $sql = "insert into scele (codigo, nombre) values (?, ?)";
              $param = "1, Test1";

                 $tr = ibase_trans(IBASE_WRITE,$this->cn);
                 $qr = ibase_prepare($tr,$param);
                 $this->rs = ibase_execute($sql,$param);
                 if ($this->rs){

                   //Evaluate this condition, but he does not enter here


                   ibase_commit($tr);
                 } else {
                   ibase_rollback($tr);
                   return array('tipo'=>false,'texto'=>'Error de ejecusi&oacute;n: ' .ibase_errmsg());
                 }
                 ibase_free_query($qr);
                 return array('tipo'=>true,'texto'=>'');
               } else {
                 return array('tipo'=>false,'texto'=>'Error de conexi&oacute;n: ' .ibase_errmsg());

               }
              }

              Best Regards
              ========
              | ISMAEL |
              ========



              --
              PHP General Mailing List (http://www.php.net/)
              To unsubscribe, visit: http://www.php.net/unsub.php










[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux