php sql odbc_execute(),与LIKE不起作用
我有一段代码没有返回任何内容(echo没有返回任何内容,应该返回两行): 你看到这个代码有什么错误吗 请提前让我知道并感谢 更新------ 我对下面答案中建议的代码进行了更改,现在出现了一个新错误:php sql odbc_execute(),与LIKE不起作用,php,sql-server,odbc,prepared-statement,Php,Sql Server,Odbc,Prepared Statement,我有一段代码没有返回任何内容(echo没有返回任何内容,应该返回两行): 你看到这个代码有什么错误吗 请提前让我知道并感谢 更新------ 我对下面答案中建议的代码进行了更改,现在出现了一个新错误: Warning: odbc_execute(): Can't open file %mich% 其中mich是在数据库中搜索时输入的文本。我发现以下内容可能与此相关: 我认为双引号可能会引起问题。我不确定为什么要为数组中的单个项准备语句。为什么不只执行一个SELECT查询,如:$SELECT=“
Warning: odbc_execute(): Can't open file %mich%
其中mich是在数据库中搜索时输入的文本。我发现以下内容可能与此相关:
我认为双引号可能会引起问题。我不确定为什么要为数组中的单个项准备语句。为什么不只执行一个SELECT查询,如:
$SELECT=“从CLIX1中选择CLIENTE,NOMCLI,其中NOMCLI类似“{$\u POST['CLIENTE']}%”按NOMCLI排序”代码>为了防止sql注入,我不应该总是做准备好的语句吗?我应该什么时候做准备语句,什么时候不做?还有其他方法可以防止SQL注入。MySQL示例:$select=sprintf(“从CLIX1中选择CLIENTE、NOMCLI,其中NOMCLI类似于“%%s%%”按NOMCLI排序)、MySQL\u real\u escape\u字符串($\u POST['CLIENTE'],$con))代码>也许你也可以帮我找到一种SQL server的方法。我还想知道为什么我的代码不起作用,如果我想使用prepared语句如果您启用了MySQL日志[linl],您应该能够看到您的查询是否按照预期执行。我从那里开始,谢谢。我会检查一点,我肯定会让你知道,如果它工作相当肯定,我说双引号是上述评论的问题。不过这很酷,你可以为此获得荣誉:)@Namrehs你绝对做到了。如果您对此有强烈的感觉,请发布答案,让OP给您应得的分数。如果这是一个问题,我现在将检查它,如果它是正确的,我将同时给这两个分数。它现在给我以下错误:警告:odbc_execute():无法打开文件%mich%
$rs = odbc_execute($stmt, array("%mich%"));
Warning: odbc_execute(): Can't open file %mich%
$prep_array = array();
$prep_array[] = "'%$cliente%'";
$rs = odbc_execute($stmt, $prep_array);