Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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
SQL选择类似PHP变量的WHERE字段。_Php_Mysql_Pdo_Sql Like - Fatal编程技术网

SQL选择类似PHP变量的WHERE字段。

SQL选择类似PHP变量的WHERE字段。,php,mysql,pdo,sql-like,Php,Mysql,Pdo,Sql Like,我在使用类似SQL命令的php变量时遇到了一些问题。下面的代码按其应该的方式运行。但是,如果我更改$model=“Cruze Limited”我没有从数据库中得到任何返回。我希望至少能得到与$model=“Cruze”时相同的结果返回其车型包含“Cruze”的所有车辆 我有一种感觉,我只是错过了一些小的语法错误,但我不能把我的手指放在它。如果是这样的话,我提前道歉 <?php $make = "Chevrolet"; $model = "Cruze"; $trim = "LT"; $

我在使用类似SQL命令的php变量时遇到了一些问题。下面的代码按其应该的方式运行。但是,如果我更改
$model=“Cruze Limited”我没有从数据库中得到任何返回。我希望至少能得到与
$model=“Cruze”时相同的结果返回其车型包含“Cruze”的所有车辆

我有一种感觉,我只是错过了一些小的语法错误,但我不能把我的手指放在它。如果是这样的话,我提前道歉

<?php 
$make = "Chevrolet";
$model = "Cruze";

$trim = "LT";

$year = '2017';

$query = "SELECT *
          FROM my_table
          WHERE year = '$year'
          AND make = '$make'
          AND model LIKE '$model%'";

$statement = $db->prepare($query);
$statement->execute();

$
?>
试试这个

$query = "SELECT *
          FROM my_table
          WHERE year = '$year'
          AND make = '$make'
          AND LOCATE(model,'$model') > 0";

“我至少希望得到与我在
$model=“Cruze”
时得到的结果相同的结果-这不一样。
$model%
返回所有以
$model
开头的记录,而不是“contains”。检查这一点的一个好方法是以某种方式输出查询。在body标签后面添加
,这至少会为您指明正确的方向。另外,@Syscall是正确的,您应该使用
'%$model%'
而不是
'$model%'
是的,这很有效!谢谢
$query = "SELECT *
          FROM my_table
          WHERE year = '$year'
          AND make = '$make'
          AND LOCATE(model,'$model') > 0";