2017-04-18 132 views
0

我在一個html文件(帶.php擴展名)中運行這個,但是當我檢查元素時,iframe沒有出現。錯誤報告顯示va5和bind_param存在問題。當我調用這個php時,我並不總是有一個變量5。我怎麼能解決這個問題?PHP回聲不返回html代碼

<?php 

    $va1 = $_GET['variable1']; 
    $va2 = $_GET['variable2']; 
    $va3 = $_GET['variable3']; 
    $redetails = NULL; 
    $redetails2 = NULL; 
    $redetails = $_GET['rdetails']; 
    $redetails2 = $_GET['redetails2']; 

    $stmt = $mysqli->prepare("SELECT id FROM idlist WHERE var1 = ? && var2 = ? && var3 = ? && var4 = ? && var5 = ?"); 

    //failing 
    $stmt->bind_param('sssss', $va1, $va2, $va3, $va4, $va5); 

    $stmt->execute(); 
    $result = $stmt->get_result(); 

    //failing 
    echo $result[0]; 

    //failing 
    echo '<iframe src="https://drive.google.com/file/d/' . $result[0] . '/preview" width="850" height="1150"></iframe>'; 
?> 
+0

什麼是文件擴展名? * .PHP?你用什麼來啓動PHP - Apache? Nginx的? CLI? – mochalygin

+0

@mochalygin是的,它的一個.php文件,我使用的是Apache – p1083997

+2

在你的'//一些計算「中可能有錯誤。打開PHP中的錯誤報告以查看它們:http://stackoverflow.com/questions/1053424/how-do-i-get-php-errors-to-display注意:您可能不會看到這樣的語法錯誤。 –

回答

0

您必須根據變量的數量來改變您的查詢。解決方案可能是

<?php 
    $parms = array(
     'var1' => $_GET['variable1'], 
     'var2' => $_GET['variable2'], 
     'var3' => $_GET['variable3'], 
    ); 

    if (isset($_GET['variable4'])) $parms['var4'] = $_GET['var4']; 
    if (isset($_GET['variable5'])) $parms['var5'] = $_GET['var5']; 

    $stmt = $mysqli->prepare('SELECT id FROM idlist WHERE '. implode(' = ? && ', array_keys($parms)). ' = ?'); 
    foreach($parms as $value) $stmt->bind_param('s', $value);