我有一些基本的查询,如果给定了一些其他参数,我想扩展它。我希望您在看到代码时能够理解我在尝试什么。
$proizvodjac=$_GET["p_proizvodjac"];
$query="SELECT v.proizvodjac,v.naziv,v.godina_proizvodnje,
v.cijena, v.slika, v.tip, v.broj_vrata,
v.gorivo, v.automatik, p.naziv_poslovnice
FROM vozilo v
LEFT JOIN poslovnica p ON poslovnica_id=idposlovnica";
if($proizvodjac!="NULL"){
$query=$query."WHERE v.proizvodjac=\"$proizvodjac\"";
}
我正在使用此查询在数据库中进行搜索。
当 $proizvodjac=="NULL"
一切正常,因为它没有进入 if 语句,但是当 $proizvodjac!="NULL"
时,我得到以下错误
"You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the
right syntax to use near 'v.proizvodjac="Skoda"' at line 4"
请帮助我的代码有什么问题?谢谢 我从这个表格中得到 $proizvodjac
<select name="p_proizvodjac">
<option value="NULL"></option>
<option value="Audi">Audi</option>
<option value="Skoda">Skoda</option>
<option value="Renault">Renault</option>
<option value="HYUNDAI">HYUNDAI</option>
<option value="VW">VW</option>
<option value="Fiat">Fiat</option>
<option value="Opel">Opel </option>
</select>
最佳答案
需要在if语句的查询部分加一个空格:
$proizvodjac=$_GET["p_proizvodjac"];
$query="SELECT v.proizvodjac,v.naziv,v.godina_proizvodnje,
v.cijena, v.slika, v.tip, v.broj_vrata, v.gorivo, v.automatik, p.naziv_poslovnice
FROM vozilo v
LEFT JOIN poslovnica p
ON poslovnica_id=idposlovnica";
if($proizvodjac!="NULL"){
$query=$query." WHERE v.proizvodjac=\"$proizvodjac\"";
}
否则 WHERE 直接连接到第一部分,这会导致错误。
关于php - MySQL-Making查询使用PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31699859/