Как насчет этого?
$query = "SELECT a.Name, b.URL
FROM " . $this->table . " a
INNER JOIN
FunnelsFlows b ON CONCAT(a.Level, ':lv') = b.Level_ID
WHERE
a.Funnel_ID = :fid
LIMIT 0,1";
// Prepare statement
$stmt = $this->conn->prepare($query);
// Bind ID
$stmt->bindParam(':fid', $this->fid, PDO::PARAM_INT);
$stmt->bindParam(':lv', $this->lv, PDO::PARAM_INT);
// Execute query
$stmt->execute();
Это был быстрый ответ, поэтому я сейчас объясню.
Что я вижу, что вы хотите объединить столбец таблицы со строкой, верно?
Сначала у вас был неправильный идентификатор :level
, который вы пытаетесь связать с помощью следующегооператор $stmt->bindParam(':lv', $this->lv, PDO::PARAM_INT);
, поэтому вы должны изменить его с помощью :lv
или изменить оператор связывания на $stmt->bindParam(':level', $this->lv, PDO::PARAM_INT);
.
Второй - при попытке объединить столбец вы должны удалить кавычки, чтобы он былCONCAT('a.Level',
и если второй оператор является строкой, он должен быть в одинарных кавычках, поэтому полный оператор CONCAT должен быть записан следующим образом: CONCAT(a.Level, ':lv')