2017-05-07 2 views
0

definiert ist, ist es möglich, so etwas zu tun:in einem String eine Variable Setzen, nachdem es

SQL = 'SELECT * FROM test_table ' .$sqljoin . $where . $order; 
if (a>0){ 
$sqljoin = 'INNER JOIN test_users ON test_opplegg.UserId = test_users.id'; 
}else{ 
$where = 'WHERE target=1' 
} 

//Add the new variable to the SQL-sentence... 

Und dann die neue Variable in dem SQL-Satz hinzuzufügen. Auf diese Weise muss ich den SQL-Satz nicht so oft schreiben und ich kann Werte hinzufügen, nachdem der Start von SQL definiert wurde.

+0

Ja, es ist möglich, aber nicht genau so - Sie müssen die Variable definieren, bevor Sie es verwenden können . Oder concat einfach dynamisch, mit einer einzigen Variablen. Und natürlich die richtige Syntax verwenden. – Qirel

+1

Dies ist offensichtlich __nicht möglich__ –

Antwort

0

Verwendung string formatting:

// I assume you have already defined $order somewhere before this 

$sql = 'SELECT * FROM test_table %s %s %s'; 

$sqljoin = ''; 
$where = ''; 

if (a>0){ 
    $sqljoin = 'INNER JOIN test_users ON test_opplegg.UserId = test_users.id'; 
}else{ 
    $where = 'WHERE target=1' 
} 

$sql = sprintf($sql, $sqljoin, $where, $order); 
1

Sie werden so etwas wie wollen:

$order = 'ORDER BY column_name ASC' //or DESC 

if ($a>0) 
{ 
    $sql_append = 'INNER JOIN test_users ON test_opplegg.UserId = test_users.id'; 
} 
else 
{ 
    $sql_append = 'WHERE target=1' 
} 

$sql = 'SELECT * FROM test_table ' . $sql_append . $order; 
Verwandte Themen