php从firebird获取数据

qojgxg4l  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(331)

我的问题是更新。我的新问题是:;

  1. <?php
  2. header('Access-Control-Allow-Origin: *');
  3. header('Access-Control-Allow-Headers: X-Requested-With');
  4. header('Access-Control-Allow-Headers: Content-Type');
  5. header('Access-Control-Allow-Methods: POST,GET,OPTIONS,DELETE,PUT');
  6. header('Cache-Control:public, max-age=100');
  7. if ($db = ibase_connect('111.222.333.444:C:\xx\xx\xx\xx\xx\xx.FDB', 'SYSDBA',
  8. 'masterkey')) {
  9. $sql = "select * from STOK where barkodu='$barkodu'";
  10. $query = ibase_prepare($sql);
  11. $rs=ibase_execute($query);
  12. if($row = ibase_fetch_row($rs)){
  13. $stok_adi = $row[2];
  14. $sonuc->stok_adi = $stok_adi;
  15. }
  16. ibase_close($db);
  17. }
  18. else {
  19. $sonuc->durum = "cevapyok";
  20. }
  21. echo json_encode($sonuc);
  22. ibase_free_query($query);
  23. ibase_free_result($rs);
  24. ?>

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

  1. $sql = "select * from STOK";

但我想要这个;

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

我怎样才能得到 $barkodu 从外部使用http post?谢谢。
顺便说一句;我已用更改了ip地址 111.222.333.444 以及我的数据库位置 C:\xx\xx\xx\xx\xx\xx.FDB 为了我的安全

i7uq4tfw

i7uq4tfw1#

警告:我通常不会用php编程,这个答案是基于阅读文档和我对firebird的了解。
当前代码不安全,易受sql注入攻击。与其使用字符串插值将值直接放入查询字符串,不如使用参数化查询。
也就是说,您需要将代码更改为:

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

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

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

另请参见
ibase\u准备
ibase\u执行
ibase\u查询
如果您的问题是如何从表单帖子中获取参数,那么我建议您研究如何使用php获取输入字段值,或者搜索关于如何使用php获取表单值的教程;然而,这是一个与firebird(或mysql)没有直接关系的问题。

展开查看全部

相关问题