PHP 从 Firebird 获取数据
PHP Get Data From Firebird
我的问题正在更新。我的新问题是这个;
<?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'";
如何从外部通过 http post 获取 $barkodu
?
谢谢。
顺便说一句;
我已经用 111.222.333.444
更改了我的 IP 地址
我的数据库位置 C:\xx\xx\xx\xx\xx\xx.FDB
为了我的安全
警告:我通常不会在 PHP 中编程,这个答案是基于阅读文档和我对 Firebird 的了解。
您当前的代码不安全并且容易受到 SQL 注入。与其使用字符串插值将您的值直接放入查询字符串,不如使用参数化查询。
也就是说,您需要将代码更改为:
$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);
另见
如果您的问题是如何从表单 post 获取参数,那么我建议您查看 How to get input field value using PHP,或搜索有关如何使用 [= 获取表单值的教程37=];然而,这是一个与 Firebird 没有直接关系的问题(也没有 MySQL)。
我的问题正在更新。我的新问题是这个;
<?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'";
如何从外部通过 http post 获取 $barkodu
?
谢谢。
顺便说一句;
我已经用 111.222.333.444
更改了我的 IP 地址
我的数据库位置 C:\xx\xx\xx\xx\xx\xx.FDB
为了我的安全
警告:我通常不会在 PHP 中编程,这个答案是基于阅读文档和我对 Firebird 的了解。
您当前的代码不安全并且容易受到 SQL 注入。与其使用字符串插值将您的值直接放入查询字符串,不如使用参数化查询。
也就是说,您需要将代码更改为:
$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);
另见
如果您的问题是如何从表单 post 获取参数,那么我建议您查看 How to get input field value using PHP,或搜索有关如何使用 [= 获取表单值的教程37=];然而,这是一个与 Firebird 没有直接关系的问题(也没有 MySQL)。