могу ли я объявить переменную в запросе?

$sql1 = 'SELECT * FROM someTable INNER JOIN someTable ON someTable.tID = someTable.threadID LEFT JOIN someTable ON someTable.ID = someTable.IMAGEID WHERE tID = $_GET["$somevariable"] '; 

Запрос выше работает, если я ставлю tID вручную в виде чисел. Я хочу использовать метод $_GET на этой странице. Таким образом, метод $_GET может запрашивать разные номера, когда направляется сюда с других страниц

Это возможно? если да, то как это сделать?

Я новичок, поэтому, пожалуйста, не просто дайте правильный код, но объясните, почему это происходит, поэтому я могу учиться на этом.

Related of "могу ли я объявить переменную в запросе?"

Если запрос работает, когда вы вручную заменяете $_GET номером, я сначала должен убедиться, что значение $_GET['whatever'] установлено правильно. Используйте echo var_dump($_GET) чтобы просмотреть всю информацию об этой переменной. Если переменная, по-видимому, правильно установлена, это может также быть проблемой с конкатенацией.

Попробуйте изменить

 $sql1 = 'SELECT * FROM someTable INNER JOIN someTable ON someTable.tID = someTable.threadID LEFT JOIN someTable ON someTable.ID = someTable.IMAGEID WHERE tID = $_GET["$somevariable"] '; 

в

 $sql1 = 'SELECT * FROM someTable INNER JOIN someTable ON someTable.tID = someTable.threadID LEFT JOIN someTable ON someTable.ID = someTable.IMAGEID WHERE tID = '.$_GET["$somevariable"].' '; 

Это правильно введет переменную в запрос.


Важная заметка

Вы не предоставляете какой-либо другой код, поэтому я не знаю, правильно ли вы обрабатываете входные данные, но вы действительно не должны так писать SQL-запросы. Посмотрите на PDO для параметризованных операторов. Если вы просто ввели $_GET в запрос, представьте, должен ли кто-то вводить SQL в вашу форму.

Вы можете использовать этот способ:

 $Id=$_GET["$somevariable"]; $sql1 = 'SELECT * FROM someTable INNER JOIN someTable ON someTable.tID = someTable.threadID LEFT JOIN someTable ON someTable.ID = someTable.IMAGEID WHERE tID = '. $Id ;