Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将运算符作为参数传递给odbc_execute()_Php_Odbc - Fatal编程技术网

Php 将运算符作为参数传递给odbc_execute()

Php 将运算符作为参数传递给odbc_execute(),php,odbc,Php,Odbc,我正在做准备好的陈述的第一步尝试性的工作(然后脸朝下) 在此之前,我从$\u GET构建了以下代码,并对其进行了回显——代码运行良好,它从我的简单测试数据库中返回了我所期望的结果 SELECT * FROM edit_box WHERE (tag="9") AND (text="mango") ORDER BY time_stamp DESC 当我试图用一个准备好的语句来编码它时,即使我不使用$\u GET,而只是硬编码前面的值,我的代码看起来是这样的

我正在做准备好的陈述的第一步尝试性的工作(然后脸朝下)

在此之前,我从$\u GET构建了以下代码,并对其进行了回显——代码运行良好,它从我的简单测试数据库中返回了我所期望的结果

SELECT * FROM edit_box WHERE (tag="9") AND (text="mango") ORDER BY time_stamp DESC
当我试图用一个准备好的语句来编码它时,即使我不使用$\u GET,而只是硬编码前面的值,我的代码看起来是这样的

$odbc_query = OdbcPrepare('SELECT * FROM edit_box WHERE (tag="?")' .
                          ' AND (text ? "?") ORDER BY time_stamp DESC');
           
$odbcResult = odbc_exec($odbc_query, array('9',  '=', 'mango'));  
var_dump($odbcResult);
我得到
NULL

这显然是一个初学者的错误,但我盯着它看,还是不说“哦!”

我做错了什么?

你不能这样做--

和(文本?“”)

像这样的参数通常只能为实际值传递-在某些情况下,标识符

要执行所需操作,需要将“=”内联插入SQL语句中

有点像这样--


+1和答案。谢谢请相信我,在我第一次进入准备好的语句时会遇到异常:-)碰巧,+(或)是一个列表框的值,允许用户选择Comparison,no不受用户操纵。如果HTML显示input type=“text”,那么我只需要用户输入的参数,这样安全吗
$logical_operator = '=';

$sql = SELECT * FROM edit_box WHERE (tag=\"?\") AND (text $logical_operator \"?\") ORDER BY time_stamp DESC');

$odbc_query = OdbcPrepare($sql);

$odbcResult = odbc_exec($odbc_query, array('9', 'mango'));