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'");
Откуда это? $_POST["org_ID"]
У вас есть форма на странице, которая публикует это? Или вы просто пытаетесь получить это из базы данных? Если так, разве вам не нужен еще один запрос, чтобы получить его первым?
$ Row_MyFirstQuery['org_ID']
Иначе, если это $_POST["org_id"], разве это не одинарные кавычки, а не двойные? $_POST['org_ID']