原句是这样的:$sql = "SELECT * FROM `BadDut.user` WHERE `Account`='".strtolower($_POST["username"])."' ";strtolower是php的一个函数,不区分大小写的。如果按照oracle的写法怎么写?谢谢!

解决方案 »

  1.   


    --直接用oracle中的函数:
             upper 字符变大写
             lower  字符变小写
      

  2.   

    楼上的,能不能把sql语句写出来?
      

  3.   

    SELECT * FROM BadDut.user WHERE upper(Account)=upper('input_value');
      

  4.   

    SELECT * FROM tatlbename WHERE Account=UPPER(variable)
      

  5.   

    $sql = "SELECT * FROM `BadDut.user` WHERE `Account`='".strtolower($_POST["username"])."' ";
    后面的字符串转换成小写,那么前面的account字段里的值都是小写形式?
    那么
    select * from badDut.user where account=lower(:username)
    就好了,没必要的话,就不要对account进行函数处理
      

  6.   

    现在我改成了:
    $sql = "select * from 'BadDut.user' where 'Account'=lower(:username)";
    还是报错:
    ORA-00903: invalid table name...
      

  7.   

    ..那个表名和字段名不要加单引号
    还有我说的:username是表示参数
    你试试这么写
    $sql = "SELECT * FROM BadDut.user WHERE Account =lower('".$_POST["username"]."') "; 
    php语法我不懂,自己做必要的修改
      

  8.   

    是Oracle数据库么
    表名不能用单引号引哟。 如果要引用需要用双引号
    你试试这个
    $sql = "SELECT * FROM \"BadDut\".\"user\" WHERE \"Account\"=lower(\'".$_POST["username"]."\'" ; 
      

  9.   

    谢谢楼上的。不过你最后分号后面漏了个)哦。BadDut.user是一个表,\"BadDut\".\"user\"用反斜杠转义出来的是?
      

  10.   

    我把以上的$sql语句书出来的结果是:
    SELECT * FROM "BadDut"."user" WHERE "Account" = lower(\'sysop\')报错:
    ORA-00911:invalid character in ...
      

  11.   

    我做了些修改:
    $sql = "SELECT * FROM \"BadDut.user\" WHERE \"Account\"=lower('".$_POST["username"]."')" ; 现在输出sql:
    SELECT * FROM "BadDut.user" WHERE "Account"=lower('sysop')不知道对不对,不过没有报错。
      

  12.   

    有结果出来吗?$sql = "SELECT * FROM BadDut.user WHERE Account=lower('".$_POST["username"]."')" ;也可试试这个,baddut应该是schema的名字