2017-07-31 72 views
0

我不是很习惯于使用MySQL,而且我正在接受由其他人创建的项目。mysql查询失败 - 布尔给定

我试图查询一个名为“perfis”的数据库表,其中有几行,结果是“Y”或“N”。

我尝试使用下面的查询来得到这一结果:

$query = "SELECT * FROM `perfis` WHERE id= `".$_SESSION['perfil']."`;"; 

$result = mysqli_query($con,$query); 

$regPerfil = mysqli_fetch_array($result); 

$_SESSION['perfil']是该行的ID,并且该值由窗体上的上一步中给出)。

该查询应该允许我从表中获取变量,然后可以使用该变量将用户引导至特定的网页。

但是,我无法获得我需要的变量。它返回的空白,并检查记录,之后我看到下面的PHP警告:

mysqli_fetch_object()预计参数1被mysqli_result,布尔给

任何人都可以请点我正确的方向与此?

我知道$_SESSION['perfil']变量正在返回一个有效值,因为如果我打印它,我会得到我需要的值。

+0

您的连接失败。 – mkaatman

+2

您已经开放SQL注入。由于您使用的是mysqli,请利用[prepared statements](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)和[bind_param](http://php.net/手动/ EN/mysqli的-stmt.bind-param.php)。 **而且您再也不用担心引用问题** – aynber

+0

在id值周围使用反引号告诉mysql将该值视为列标识符而不是值。 –

回答

0

你可以像下面一样使用,我认为oyu在where子句的右边使用了back-tick

$query = "SELECT * FROM `perfis` WHERE id= '".$_SESSION['perfil']."'";