在Discuz!论坛代码里经常能看到这样的语句:
"SELECT * FROM table WHERE uid='$uid'"我的问题是,明明知道uid是数字型字段,为什么要用''括起来。另外,mysql居然吃这一套,谁能告诉我这是为什么?

解决方案 »

  1.   

    如果你确定是数字,那么引号可加可不加,问题是如果万一这个变量成了字符串,不加引号的就是错误的sql语句了,所以干脆全加吧,呵呵
      

  2.   

    数值型,加了引号会自动转换的,支持楼上说的,可要是数据集非常大的话,加了引号,也许就会影响SQL执行速度!
      

  3.   

    原来是为了提高容错性...
    但是会导致mysql负载加重这个没错吧