2013-01-22 46 views
-4

我現在有這個代碼。爲什麼如果...切換到DBO後,其他人停止工作?

$select_links = "SELECT * FROM $table"; 
if (isset($_POST['link'])) { 
    if ($_POST['link'] == '0'){ 
    }} 
else { 

$links = $conn->prepare($select_links); 
$links->execute(); 
$links->setFetchMode(PDO::FETCH_ASSOC); 
while($row1 = $links->fetch()) 
{ 
echo $row1['name']; 
}; 
} 

當我加載網頁沒有彥博,echo $row1['name'];作品。但是,如果我發送POST link=1它不工作。爲什麼?我只有在POST包含link=0時才能使其無效。

P.S.它在我切換到DBO之前工作。

+1

怎樣「不工作」的樣子到底是什麼? – deceze

+0

什麼都沒有發生。像'echo $ row ...'不存在。如果我刪除if-else部分,'echo $ row ...'工作。 – user1955915

+0

PHP可能會拋出一個錯誤,但不會顯示。我建議打開PHP的錯誤報告,這樣你才能看到錯誤信息。這可以幫助你找出問題所在。 – SDC

回答

1

它不是什麼「DBO」,而是你寫的代碼。
雖然我設法得到它的意義只有重新格式化之後纔有意義。 這裏有雲:

$select_links = "SELECT * FROM $table"; 
if (isset($_POST['link'])) { 
    if ($_POST['link'] == '0'){ 
     // do nothing 
    } 
} else { 
    $links = $conn->prepare($select_links); 
    $links->execute(); 
    $links->setFetchMode(PDO::FETCH_ASSOC); 
    while($row1 = $links->fetch()) 
    { 
     echo $row1['name']; 
    } 
} 

所以,當你設置POST鏈接= 1,它是通過isset($_POST['link'])檢查,然後執行任何其他代碼。

最有可能你的意思是這樣的

if (!empty($_POST['link'])) { 
    $select_links = "SELECT * FROM $table"; 
    $links = $conn->prepare($select_links); 
    $links->execute(); 
    $links->setFetchMode(PDO::FETCH_ASSOC); 
    while($row1 = $links->fetch()) 
    { 
     echo $row1['name']; 
    } 
} 

如果你需要一些其他的邏輯 - 沒問題,代碼任何你想要的行爲。
只需閱讀手冊並測試您嘗試的所有內容。
......不過還好,這一次可能對於初學者來說是很難:

if (!isset($_POST['link']) || $_POST['link']) { 

意味着

IF $_POST['link'] is NOT set OR $_POST['link'] NOT equal to 0