我正在尝试通过keyup函数从oracle数据库中获取数据。这是我的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) : " ") . "</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
,我从onkeyup使用
LIKE
运算符,我得到了空输出,尽管它们的名称与变量匹配。当我使用以下查询时,我无法理解为什么查询失败。
$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运算符时会得到空结果