喜欢运营商不在oracle数据库中工作

时间:2015-03-15 15:35:39

标签: php jquery oracle oracle10g sql-like

我正在尝试从oracle数据库onkeyup函数获取数据。这是我的HTML代码。

    <form name="filter_name"action="jqry.php" method="post">
       <input class="name" name="name" type="text" id="name">
       <input name="submit" type="submit" value="submit" />
    </form>

这是我的jquery代码:

    $(function(){
        $("#name").keyup(function() {
        var name = $(this).val();
        var dataString = 'name='+ name;
         if(name!='') {
            $.ajax({ 
               type: "POST",
               url: "connectdb.php",
               data: dataString,
               cache: false,
               success: function(html) {
                  alert(html);
               }
             });
            }
            return false;
          });
        });

最初我在connectdb.php

中编写了如下查询
    <?php          
       $text = $_POST['name']; 
       // I have given db connections here
       $query="SELECT EMP_NAME FROM EMPLOYEES";
       $stid = oci_parse($conn, $query); 
       oci_execute($stid, OCI_DEFAULT); 
       echo "<table border='1'>\n";
       while ($row = oci_fetch_array($stid, OCI_ASSOC)) { 
         echo "<tr>\n";     
         foreach ($row as $item) {         
              echo "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;") . "</td>\n";     
            }
           echo "</tr>\n";
         }
      echo "</table>\n";
      oci_free_statement($stid);
      oci_close($conn);
     ?>

为此我在警报中正确地获取输出

    <table border="1">
     <tr>
      <td>ABC</td>
     </tr>
     <tr>
       <td>XYZ</td>
     </tr>
     <tr>
       <td>PQR</td>
     </tr>
   </table>

但是当我尝试将名称与POST变量匹配,即$text,我使用LIKE运算符从onkeyup获得时,虽然它们是与变量匹配的名称,但我得到空输出。我使用以下查询时无法理解查询失败的原因。

    $query = "SELECT EMP_NAME FROM EMPLOYEES WHERE NAME LIKE '%".$text."%'";

例如,当我在a的输入框中输入id="name"时,我收到警报的输出如下所示。那是我得到零结果。

    <table border="1">
    </table>

这里参考我的数据库表结构:

    |  EMP ID  |  EMP_NAME  |
    |    1     |    ABC     |
    |    2     |    XYZ     |
    |    3     |    PQR     |

当我使用LIKE运算符时,请任何人帮助我,为什么我得到空结果

1 个答案:

答案 0 :(得分:1)

使用

"...WHERE LOWER(NAME) like lower('%".$text."%')...."

<强>原因:

默认情况下,oracle会进行案例Sensitive搜索。因此,将您的字符串转换为较低的值并将db值也转换为较低值然后进行比较。

参考 herehere