我正在努力执行这个sql
$tarifekatalogcwsql=oci_parse($conn,'select TARIFE_ID, HIZMET_TURU, ALT_HIZMET_TURU, KAYIT_TARIHI, OM_TARIFE_ID from SMARTTBILL.TARIFE_KATALOG_CW
WHERE HIZMET_TURU='.$rowisemriabonecw[0].' AND ALT_HIZMET_TURU='.$rowisemriabonecw[1].' AND OM_TARIFE_ID='.$rowisemriabonecw[4].'');
您可以考虑使用sql语句。当我执行此查询时,它返回我在标题中写的错误。
在我的数据库表中,我有一些值包括' |'因此,系统给了我这样的错误。
OM_TARIFE_ID='.$rowisemriabonecw[4].'
这是问题的根源。
OM_TARIFE_ID='1|1'
$rowisemriabonecw[4]='1|1'
两者都相同,但系统会考虑' |'字符作为连接字符串。
你能为这个案子提供帮助吗?我该如何处理这个问题?
答案 0 :(得分:3)
试试这个:
$tarifekatalogcwsql=oci_parse(
$conn,
'select TARIFE_ID, HIZMET_TURU, ALT_HIZMET_TURU, KAYIT_TARIHI, OM_TARIFE_ID from SMARTTBILL.TARIFE_KATALOG_CW WHERE '
.'HIZMET_TURU = "' . $rowisemriabonecw[0] . '" AND '
.'ALT_HIZMET_TURU = "' . $rowisemriabonecw[1] . '" AND '
.'OM_TARIFE_ID = "' . $rowisemriabonecw[4] . '"'
);
但您的方法是进行 SQL注入的最简单方法!
$tarifekatalogcwsql=oci_parse(
$conn,
'SELECT TARIFE_ID, HIZMET_TURU, ALT_HIZMET_TURU, KAYIT_TARIHI, OM_TARIFE_ID '
.' FROM SMARTTBILL.TARIFE_KATALOG_CW '
.'WHERE HIZMET_TURU = :HIZMET_TURU '
.' AND ALT_HIZMET_TURU = :ALT_HIZMET_TURU '
.' AND OM_TARIFE_ID = :OM_TARIFE_ID'
);
oci_bind_by_name($tarifekatalogcwsql, ":HIZMET_TURU", $rowisemriabonecw[0]);
oci_bind_by_name($tarifekatalogcwsql, ":ALT_HIZMET_TURU", $rowisemriabonecw[1]);
oci_bind_by_name($tarifekatalogcwsql, ":OM_TARIFE_ID", $rowisemriabonecw[4]);