PHP: где предложение не будет выполняться при использовании переменной

Для пользователя, с которым я тестирую, значение его столбца 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);
}

(когда я заменяю $org_id в строке "$sql=..." на student_life, код работает.

3 ответа

Вы цитируете имя столбца, что заставляет 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 Почему я не должен использовать функции mysql_* в PHP?

Откуда это? $_POST["org_ID"]

У вас есть форма на странице, которая публикует это? Или вы просто пытаетесь получить это из базы данных? Если так, разве вам не нужен еще один запрос, чтобы получить его первым?

$ Row_MyFirstQuery['org_ID']

Иначе, если это $_POST["org_id"], разве это не одинарные кавычки, а не двойные? $_POST['org_ID']

Другие вопросы по тегам