繁体   English   中英

PHP:使用变量时不会执行 Where 子句

[英]PHP: Where clause will not execute when using a variable

对于我正在测试的用户,他们的 org_id 列值为“student_life”

我试图让这个函数显示任何具有 student_life 列 = 1 的行。(所以是的,有一列 student_life 是一个布尔值,然后我还有一个名为 org_id 的单独列,在这种情况下具有值 student_life)

我很确定存在语法错误,但我无法弄清楚。

function org_id_users_table() 
{
$org_id = mysql_real_escape_string($_POST["org_id"]);

$sql = $this->query("SELECT * FROM ".DBTBLE." WHERE '$org_id' = '1'");
$result = $sql['sql'];
$num_rows = $sql['num_rows'];
$this->create_table($result, $num_rows);
}

(当我用 student_life 替换“$sql=...”行中的 $org_id 时,代码有效。

您引用了列名,这使 MySQL 认为它是一个字符串。

$sql = $this->query("SELECT * FROM ".DBTBLE." WHERE $org_id = '1'");

编辑:

根据您的评论,我认为您真正想要的是:

$sql = $this->query("SELECT * FROM ".DBTBLE." WHERE org_id = '$org_id'");

更改报价。

$sql = $this->query("SELECT * FROM ".DBTBLE." WHERE `$org_id` = '1'");

PS 为什么我不应该在 PHP 中使用 mysql_* 函数?

这是从哪里来的? $_POST["org_id"]

你在页面上有张贴的表格吗? 或者你只是想从数据库中获取它? 如果是这样,您是否不需要另一个查询来首先获得它?

$row_MyFirstQuery['org_id']

否则如果是$_POST["org_id"],岂不是单引号不是双引号? $_POST['org_id']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM