$value
是从以前的.php 的checkbox集中获取的
$value = $_POST['checkbox_value'];
$value = implode('', $value); // since it's an array I convert it to a string
$value
现在被定义为*N*O*
(5字母字符串)
$percent = '%';
$value = str_replace('*', $percent, $value); // that's being desperate already
$query = $FirstPartOfQuery. " AND word LIKE '{$value}'";
这应该为我的查询生成一个工作代码
AND (word LIKE 'C%' AND word LIKE '%N%O%')
这正是我的查询打印的内容,但它不起作用。
但如果我手动定义$value = '%N%O%';
,它就可以编译了。
我的猜测是,在转换为字符串后,发布的值不会被读取为单引号字符串。
我认为%
引起了不安,所以我在checkbox_value
中使用了*
来检查。没有帮助。
如果您的内爆('',$value);给出*N*0**值,则str_replace(*,%,$value)将导致%N%0%%。所以检查$_post[];阵列正确。
<?php
$value="*N*0**";
$percent = '%';
$value = str_replace('*', $percent, $value);
$second= " AND word LIKE '$value' )";
$FirstPartOfQuery="(word LIKE 'C%' ";
$query = $FirstPartOfQuery. $second ;
echo "AND ". $query;//AND (word LIKE 'C%' AND word LIKE '%N%0%%' )
?>
在对我的代码进行调试后,问题是在我的.php的末尾部分缺少;
,在那里使用了血腥的eval
,并且只有在定义$_POST['checkbox_value'];
时才传递。
因此,所提出的问题没有问题。
抱歉并感谢@VigneswaranS为您付出的努力和时间。