2013-11-04 24 views
0
$min_range=$_GET['min_range']; 
$max_range=$_GET['max_range']; 
$brand_name=$_GET['brand']; 

$result=mysql_query(
    " 
     SELECT 
      brand, 
      image, 
      price 
     FROM 
      mobile 
     WHERE 
      brand = '"$brand_name " 'price =3000 
    " 
); 

我想在我的sql查询中使用php变量。这段代码有什么问题。以及如何纠正。如何在mysql中使用php变量的结果

跟它 “解析错误:语法错误,unexpect( '$ BRAND_NAME')”

+2

只是作为一个附加的点:'mysql'司机已弃用。你应该阅读MySQLi或PDO。另外,阅读准备好的陈述将是一个好主意。 –

+0

检测到SQL注入。此外,阅读更多的PHP教程,如http://www.phptherightway.com/ – Epoc

+0

它被称为串联,但仍然是您的查询有一个无效的语法 –

回答

0

更改您的查询

$result=mysql_query("SELECT brand,image,price FROM mobile WHERE brand='$brand_name' AND price=3000"); 

你居然忘了单独的条件。添加了AND关键字。

+0

更正您的typo.single之前$ brandname –

+1

OHOO ..我是什么noob :(.. thaank你:) – mubeen

1

的一种方法如下:

$result=mysql_query(
    " 
     SELECT 
      brand, 
      image, 
      price 
     FROM 
      mobile 
     WHERE 
      brand = '" . $brand_name . "' 
     AND 
      price =3000 
    " 
); 

另一种方式是这样的:

$result=mysql_query(
    " 
     SELECT 
      brand, 
      image, 
      price 
     FROM 
      mobile 
     WHERE 
      brand = '$brand_name' 
     AND 
      price = 3000 
    " 
); 

另一种方法是这样的:

$result=mysql_query(
    sprintf(
     " 
      SELECT 
       brand, 
       image, 
       price 
      FROM 
       mobile 
      WHERE 
       brand = '%s' 
      AND 
       price = 3000 
     ", 
     $brand_name 
    ) 
); 

还注意到自己的代码,带有语法错误,请用符合您需求的AND代替。

0
$result = mysql_query("SELECT brand,image,price FROM mobile WHERE brand = '$brand_name' AND price = 3000"); 
0
$result=mysql_query(
    " 
     SELECT 
      brand, 
      image, 
      price 
     FROM 
      mobile 
     WHERE 
      brand = '.$brand_name.' AND price =3000 
    " 
); 
+0

请添加一个解释。 – IvanH

0

你可以试试这个:

$result=mysql_query(
    " 
     SELECT brand, image, price 
     FROM mobile 
     WHERE 
      brand = '" . $brand_name . "' AND price = 3000 
    "); 
0

$result = $mysql->prepare("SELECT brand, image, price FROM mobile WHERE brand =? AND price=3000");

$result->bind_param($brand_name);

$result->execute();