php sql odbc_execute() 与 LIKE 不工作
php sql odbc_execute() with LIKE not working
所以我有这段代码没有 returning 任何东西(回显 return 什么都没有,应该 returning 两行):
<?php
include "connection.php";
$cliente = $_POST["cliente"];
$select = "SELECT CLIENTE, NOMCLI FROM CLIX1 WHERE NOMCLI LIKE ? ORDER BY NOMCLI";
$stmt = odbc_prepare($con, $select);
//preparing the array for parameter
$prep_array = array();
$prep_array[] = "'%$cliente%'";
$rs = odbc_execute($stmt, $prep_array);
$nombres = array();
$clienteIDS = array();
//if prepare statement is successful
if($rs)
{
$i = 0;
while($row=odbc_fetch_array($stmt))
{
$cliente_id = trim($row["CLIENTE"]);
$nombre = utf8_encode(trim($row["NOMCLI"]));
$nombres[$i] = $nombre;
$clienteIDS[$i] = $cliente_id;
$i++;
}
echo json_encode($nombres) . "|" . json_encode($clienteIDS);
}
else
{
echo "error";
}
odbc_close($con);
?>
我知道问题不在于 odbc_execute() 上的参数传递,因为即使我这样做,它也不会 return 任何东西(使用 %mich% 它应该显示两行):
$rs = odbc_execute($stmt, array("%mich%"));
你看到这段代码有什么问题吗?
请让我知道并提前致谢。
更新 ------
我对下面答案中建议的代码进行了更改,现在我收到了一个新错误:
Warning: odbc_execute(): Can't open file %mich%
其中 mich 是为在数据库中搜索而输入的文本。
我发现了以下可能相关的内容:ODBC prepared statements in PHP
$prep_array = array();
$prep_array[] = "'%$cliente%'";
$rs = odbc_execute($stmt, $prep_array);
我认为双引号可能会导致问题。
所以我有这段代码没有 returning 任何东西(回显 return 什么都没有,应该 returning 两行):
<?php
include "connection.php";
$cliente = $_POST["cliente"];
$select = "SELECT CLIENTE, NOMCLI FROM CLIX1 WHERE NOMCLI LIKE ? ORDER BY NOMCLI";
$stmt = odbc_prepare($con, $select);
//preparing the array for parameter
$prep_array = array();
$prep_array[] = "'%$cliente%'";
$rs = odbc_execute($stmt, $prep_array);
$nombres = array();
$clienteIDS = array();
//if prepare statement is successful
if($rs)
{
$i = 0;
while($row=odbc_fetch_array($stmt))
{
$cliente_id = trim($row["CLIENTE"]);
$nombre = utf8_encode(trim($row["NOMCLI"]));
$nombres[$i] = $nombre;
$clienteIDS[$i] = $cliente_id;
$i++;
}
echo json_encode($nombres) . "|" . json_encode($clienteIDS);
}
else
{
echo "error";
}
odbc_close($con);
?>
我知道问题不在于 odbc_execute() 上的参数传递,因为即使我这样做,它也不会 return 任何东西(使用 %mich% 它应该显示两行):
$rs = odbc_execute($stmt, array("%mich%"));
你看到这段代码有什么问题吗?
请让我知道并提前致谢。
更新 ------
我对下面答案中建议的代码进行了更改,现在我收到了一个新错误:
Warning: odbc_execute(): Can't open file %mich%
其中 mich 是为在数据库中搜索而输入的文本。
我发现了以下可能相关的内容:ODBC prepared statements in PHP
$prep_array = array();
$prep_array[] = "'%$cliente%'";
$rs = odbc_execute($stmt, $prep_array);
我认为双引号可能会导致问题。