代码之家  ›  专栏  ›  技术社区  ›  kalememre

PHP从Firebird获取数据

  •  1
  • kalememre  · 技术社区  · 7 年前

      <?php
    
        header('Access-Control-Allow-Origin: *');
        header('Access-Control-Allow-Headers: X-Requested-With');
        header('Access-Control-Allow-Headers: Content-Type');
        header('Access-Control-Allow-Methods: POST,GET,OPTIONS,DELETE,PUT');
    
        header('Cache-Control:public, max-age=100');
    
        if ($db = ibase_connect('111.222.333.444:C:\xx\xx\xx\xx\xx\xx.FDB', 'SYSDBA',
          'masterkey')) {
    
    
    
            $sql = "select * from STOK where barkodu='$barkodu'";
    
            $query =  ibase_prepare($sql);
            $rs=ibase_execute($query);
    
    
            if($row = ibase_fetch_row($rs)){
    
            $stok_adi = $row[2];
    
            $sonuc->stok_adi = $stok_adi;
    
          }
    
            ibase_close($db);
    
          } 
          else {
            $sonuc->durum = "cevapyok";
            }
          echo json_encode($sonuc);
    
    
        ibase_free_query($query);
        ibase_free_result($rs);
     ?>
    

    有我的代码,它正常工作;

    $sql = "select * from STOK";
    

    但我想要这个;

    $sql = "select * from STOK where barkodu='$barkodu'";
    

    我怎样才能得到 $barkodu 从外部使用http post? 谢谢。

    顺便说一句; 我已用更改了ip地址 111.222.333.444 以及我的数据库位置 C:\xx\xx\xx\xx\xx\xx.FDB

    1 回复  |  直到 7 年前
        1
  •  0
  •   Mark Rotteveel    7 年前

    警告:我通常不会用PHP编程,这个答案是基于阅读文档和我对Firebird的了解。

    也就是说,您需要将代码更改为:

    $sql = "select * from STOK where barkodu=?";
    
    $query = ibase_prepare($sql);
    $rs = ibase_execute($query, $barkodu);
    

    或者,如果您没有重用查询:

    $sql = "select * from STOK where barkodu=?";
    $rs = ibase_query($sql, $barkodu);
    

    另请参见

    如果您的问题是如何从表单帖子中获取参数,那么我建议您 How to get input field value using PHP ,或搜索有关如何使用PHP获取表单值的教程;但是这与Firebird(或MySQL)没有直接关系。