2012-04-17 57 views
-1

如果用户登录,则获取用户成员标识。所以我打印用户ID。这工作,所以如果用户不登录我打印0用户ID。现在当我选择任何数据形式的MySQL(如果用户不登录$ id ='0';)我的代码不工作,我不能打印结果。我认为我的问题是id = '.$id.'中的单引号。如何解决这个问题?当id为空时,使用php从mysql中选择数据

检查,如果用户登录:

if($_SESSION['login'] > 0){ 
    $id = $row['id']} else { 
    $id = '0';} 

与用户ID选择数据:

$sql = 'SELECT * FROM data_test WHERE id = '.$id.' AND productid = '.$row2['id']; 

...... 

编辑注:$row2['id']是另一种结果,并与$id无关。 谢谢。

+2

你不能删除引号吗? I.E. '$ id = 0;'? – 2012-04-17 21:33:01

+0

你在哪里得到'$ row2' – mgraph 2012-04-17 21:35:46

+0

不用试试。作为id ='$ id',也在哪里$ row2? – 2012-04-17 21:36:51

回答

0

尝试:

$sql = "SELECT * FROM data_test WHERE id = '$id' AND productid = '{$row2['id']}'"; 

也应该 $ 2行[ '身份证'] 是 $行[ '身份证']

1

首先PDO(或者任何事先准备好的声明的机制),将解决您在构建查询时遇到的大部分问题。这种意大利面条SQL阅读不好。

在这里,你有例子:http://www.php.net/manual/en/pdo.prepare.php

也许你想记录与空值? NULL在MySQL中的处理方式有点不同。 你必须做的:

SELECT * FROM table WHERE field IS NULL;