2014-02-10 3 views
0

Я пытаюсь объединить переменную PHP внутри запроса QUICY MYSQL. Но пока ничего не получилось.Конкатенация переменной PHP внутри MYSQL SELECT

$nkFetch = function($tableNo) use ($link){ 

    $tableQuery = 'SELECT * FROM table.$tableNo'; <------------this 

    $res = mysqli_query($link, $tableQuery); 

    if (!mysqli_query($link, $tableQuery)) { 
     printf("Errormessage: %s\n", mysqli_error($link)); 
    } 

    $table = array(); 

    while ($row = mysqli_fetch_array($res)){ 
     $table[] = $row; 
    } 

    shuffle($table); 

    foreach($table as $row){ 
     echo "<li>" . $row['WORD'] . "</li>"; 
    } 

} 
+1

вы полагаете, входы запросов поступают из пользовательского ввода? – thescientist

+0

@thescientist Я ничего не предполагал .. –

+1

Комментарий не был направлен на вас, Раймонд. Другой пользователь опубликовал комментарий об уязвимостях инъекций, когда в коде нет ничего очевидного, а thescientist ответил на эту ошибку. Исходный комментарий удален. –

ответ

7
$tableQuery = "SELECT * FROM table.$tableNo"; 

или

$tableQuery = 'SELECT * FROM table.' . $tableNo; 

или

$tableQuery = "SELECT * FROM table.{$tableNo}"; 

или

$tableQuery = sprintf("SELECT * FROM table.%s", $tableNo); 
+3

Обратите внимание на двойное, вместо одиночных кавычек в первом. В PHP одиночные кавычки не будут интерполировать переменные. –

+0

Спасибо, отлично работает! –

Смежные вопросы