簡體   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