2016-04-10 91 views
-1

一切工作正常,直到第二個查詢SELECT * FROM artist WHERE artID != ?。 html元素顯示正確,但由於某種原因$stmt = $conn->prepare("SELECT * FROM artist WHERE artID != ?");顯示爲false,因此if語句正在退出,但沒有錯誤被回顯。PHP的第二個查詢失敗,但沒有錯誤信息

<div class="row"> 
    <?php 
    error_reporting(E_ALL); 
    ini_set('display_errors', 1); 
    include 'connection.php'; 

    if(isset($_GET["album"])) 
    { 
     /* If album was passed in the URL then get current values 
      for that album */ 
     $stmt = $conn->prepare("SELECT cd.artID, artName, cdTitle, cdPrice, cdGenre, cdTracks FROM cd INNER JOIN artist ON (cd.artID = artist.artID AND cdID = ?);"); 
     if(!$stmt) 
     { 
      echo $conn->error; 
      exit; 
     } 

     $albumID = htmlspecialchars($_GET["album"]); 

     $stmt->bind_param('i', $albumID); 
     $stmt->execute(); 

     $stmt->bind_result($albumArtID, $albumArtName, $albumTitle, 
      $albumPrice, $albumGenre, $numTracks); 

     $stmt->fetch(); 

     /* Create input fields */ 
     // Album Title 
     echo "<div class=\"row horizontal-center\">" . 
      "<input type=\"text\" value=\"" . htmlspecialchars($albumTitle) . "\" name=\"albumTitle\"/>" . 
      "</div>"; 

     // Artist Name 
     echo "<div class=\"row horizontal-center\">" . 
      "<h6>By Artist:</h6>" . 
      "</div>"; 

     echo "<div class=\"row horizontal-center\">" . 
      "<select name=\"artID\">"; 

     /* Create option for current artist so it will be first in list */ 
     echo "<option value=\"$albumArtID\">$albumArtName</option>\n"; 

     /* Generate list of artists except artist currently associated with the album */ 
     $stmt = $conn->prepare("SELECT * FROM artist WHERE artID != ?"); 
     if(!$stmt) 
     { 
      echo $conn->error; 
      exit; 
     } 

     $stmt->bind_param('i', $albumArtID); 
     $stmt->execute(); 

     $stmt->bind_result($artID, $artName); 

     /* Create options for artists that were found */ 
     while($stmt->fetch()) 
     { 
      echo "<option value=\"$artID\">$artName</option>\n"; 
     } 

     echo "</select>" . 
      "</div>"; 

     // Album Price 
     echo "<div class=\"row horizontal-center\">" . 
      "<input type=\"number\" step=\"0.01\" value=\"" . htmlspecialchars($albumPrice) . "\" name=\"albumPrice\"/>" . 
      "</div>"; 

     // Album Genre 
     echo "<div class=\"row horizontal-center\">" . 
      "<input type=\"text\" value=\"" . htmlspecialchars($albumGenre) . "\" name=\"albumGenre\"/>" . 
      "</div>"; 

     // Number of Tracks 
     echo "<div class=\"row horizontal-center\">" . 
      "<input type=\"number\" value=\"" . htmlspecialchars($numTracks) . "\" name=\"numTracks\"\n/>" . 
      "</div>"; 

     // Delete checkbox 
     echo "<div class=\"row\">" . 
      "<div class=\"col-2\">" . 
      "<h6>Delete:</h6>" . 
      "</div>" . 
      "<div class=\"col-1\">" . 
      "<input type=\"checkbox\" name=\"delete\" value=\"Delete\"/>" . 
      "</div>" . 
      "</div>"; 

     /* Create hidden field to submit the album ID with the form */ 
     echo "<input type=\"hidden\" value=\"" . htmlspecialchars($albumID) . "\" name=\"albumID\"\n/>"; 
    } 
    else 
    { 
     /* Send browser back to artists page if they somehow accessed 
      the edit page without going through the "Edit" link next 
      to an artist in the table. This would be the artName variable 
      would not be sent via the URL.*/ 
     header("Location: artists.php"); 
    } 
    ?> 
</div> 

<div class="row"> 
    <div class="col-2"> 
     <h6>Delete:</h6> 
    </div> 
    <div class="col-1"> 
     <input type="checkbox" name="delete" value="Delete"/> 
    </div> 
</div> 

<div class="row"> 
    <input type="submit" name="submit" value="Update"/> 
</div> 
+0

關閉第一個查詢http://php.net/manual/en/mysqli.close.php – Chay22

+0

都是'albumID'和'album'這裏有兩種不同的動物我看到'name = \「albumTitle \」'和'$ _GET [「album」]''。我也沒有看到任何表單標籤,所以這告訴我你完全依賴來自某個'href'的GET數組。 –

+0

您發佈了相同的問題前幾小時。我投票結束了。 –

回答

0

你爲什麼不嘗試

if(!$stmt) 
    { 
    die("ERROR: " .mysqli_error($conn)); 
    exit; 
    } 
+0

這傢伙已經在使用錯誤檢查。 'echo $ conn-> error;'和'exit;'你真的不會做任何事情。你已經讓它「死」了。 –

相關問題