doutuo6689
2015-06-22 23:52
浏览 326

如何在SQL中存储空数组?

I am running into an issue with PHP/SQL

I tried to pass an empty array to SQL with oci_bind_array_by_name and

oci_bind_array_by_name($stid, ":c1", $array, 5, -1, SQLT_CHR);

will give me 'Maximum array length must be greater than zero' error

However, if I first detect the array length and skip obi_bind_array_by_name if array is empty, I will get error from SQL

'not all variables bound'

I need to store empty array sometimes to sql. I am not sure how to fix this. Any ideas?

图片转代码服务由CSDN问答提供 功能建议

我遇到了PHP / SQL的问题

我试过 使用 oci_bind_array_by_name

  oci_bind_array_by_name($ stid,“:c1”,$ array,5,-1,SQLT_CHR)将空数组传递给SQL  ; 
   
 
 

将给我'最大数组长度必须大于零'错误

但是,如果我第一次检测到数组长度并跳过 obi_bind_array_by_name ,如果数组为空,我将从SQL

 '得到错误并非所有变量绑定'  
   
 
 

我有时需要将空数组存储到sql中。 我不知道如何解决这个问题。 有什么想法吗?

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • duanmu5641 2015-06-23 10:38
    已采纳

    You still have to bind all your variable, even if they don't have a value so for

    select * 
    from t1 
    where t1.id = :1 
    

    You'd still have to set :1 to a value and if you want to ignore that condition do:

    select * 
    from t1 
    where (t1.id = '' or '' is '');
    

    assuming it was set to an empty string.

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题