这是在mysql中的一个语句:
$sql = "SELECT * FROM `user` WHERE `Account`=".strtolower($_POST['username'])."' LIMIT 1";如果按照oracle的用法,应该怎么写?谢谢!

解决方案 »

  1.   

    select * from user where account=lower(:POST);
    这个吗
      

  2.   


    这个不是mysql是php吧
    这里的strtolower()应该是php里的一个方法$_POST['username']是从post的请求里得到的username的参数换成java的写法是
    String sql = "SELECT * FROM `user` WHERE `Account`= '" + request.getPararmeter("username").toLowerCase() + "' LIMIT 1"这里是sql注入的方式调用,不安全。
      

  3.   

    这个转移成sql语句就是
    SELECT * FROM `user` WHERE `Account`= 'ddddd' where rownum = 1;
      

  4.   

    请看看下面语句有什么问题?19  $sql = "SELECT * FROM `BadDut.user` WHERE `Account`=".strtolower($_POST['username'])."' LIMIT 1";    
    20  $result = oci_parse($con,$sql);
    21  oci_execute($result);
    这段代码报错:
    ORA-01756:quoted string not properly terminated in ... 19行
      

  5.   

    经修改后:
    19  $sql = "SELECT * FROM `BadDut.user` WHERE `Account`='".strtolower($_POST['username'])."' LIMIT 1";  
    第20行报错:
    ora-00911: invalid character in on line 20