2013-07-12 97 views
0

我有一個PHP腳本,我用它來更新MySQL數據庫,它工作正常,我如何使用它,我現在使用相同的腳本來嘗試更新另一個數據庫表,但我無法讓它將任何更新寫入表中。該腳本不會顯示任何錯誤,它只是在整個過程中移動,就好像它可以工作,但發佈到MySQL。就像我之前說過的,我已經將這個腳本與另一種形式結合使用,並且它非常完美。我用新表格完成的所有操作都是更改變量以匹配我所具有的內容,並更改了數據庫表名。我所有的標點符號都是正確的。我只是不知道爲什麼它不會將更新的信息寫入MySQL。無法讓php更新mysql

這裏是我的代碼:

<?php 
//----------FORM DATA-----------// 
$id=$_POST['id']; 

$team_name=!empty($_POST['team_name'])? $_POST['team_name'] : ''; 
$first_name=!empty($_POST['first_name'])? $_POST['first_name'] : ''; 
$last_name=!empty($_POST['last_name'])? $_POST['last_name'] : ''; 
$registration=!empty($_POST['registration'])? $_POST['registration'] : ''; 
$pay_status=!empty($_POST['pay_status'])? $_POST['pay_status'] : ''; 
$physical=!empty($_POST['physical'])? $_POST['physical'] : ''; 
$photo=!empty($_POST['photo'])? $_POST['photo'] : ''; 
$notes=!empty($_POST['notes'])? $_POST['notes'] : ''; 


//----------CONNECT TO DATABASE----------// 
include 'elite_connect.php'; 


mysql_query("UPDATE cheer SET team_name='$team_name', first_name='$first_name', last_name='$last_name', registration='$registration', pay_status='$pay_status', physical='$physical', photo='$photo', notes='$notes' 
WHERE `id` = '$id'"); 

mysql_affected_rows(); 

echo mysql_error(); 

?> 
<html> 
<body style="background-color: #C7DFDF"> 
<center> 
<br><br><br> 
<form name="results" method="post" action="cheer_results.php" enctype="multipart/form-data" id="cheerresult"> 
<input type="submit" class="submit" id="cheerresult" style="width: 165px" value="View Results"> 
</form> 
</center> 
</body> 
</html> 

我很清楚可能的SQL注入與此所以請不要對此發表評論,我真的不此方案中關心它!

+0

檢查什麼$ _ POST contains.Use的var_dump($ _ POST)或print_r的($ _ POST) –

+1

1包所有的在你的PHP代碼'如果(isset($ _ POST [ '身份證'])){。 ...},因爲這將檢查您的表單是否已發佈。 2-我沒有看到你的表單中有任何元素。那麼這些值從哪裏發佈? – Sean

+1

echo mysql_affected_rows(); //這將返回受影響的行數,如果它不打印任何內容,那麼您的查詢不符合更新任何記錄的條件。 –

回答

1

您使用$_POST它始終是一個好主意,檢查其是否使用isset()

<?php 
//----------FORM DATA-----------// 

if(isset($_POST['id'])){ 

    $id=$_POST['id']; 

    $team_name=!empty($_POST['team_name'])? $_POST['team_name'] : ''; 
    $first_name=!empty($_POST['first_name'])? $_POST['first_name'] : ''; 
    $last_name=!empty($_POST['last_name'])? $_POST['last_name'] : ''; 
    $registration=!empty($_POST['registration'])? $_POST['registration'] : ''; 
    $pay_status=!empty($_POST['pay_status'])? $_POST['pay_status'] : ''; 
    $physical=!empty($_POST['physical'])? $_POST['physical'] : ''; 
    $photo=!empty($_POST['photo'])? $_POST['photo'] : ''; 
    $notes=!empty($_POST['notes'])? $_POST['notes'] : ''; 


    //----------CONNECT TO DATABASE----------// 
    include 'elite_connect.php'; 


    mysql_query("UPDATE cheer SET team_name='$team_name', first_name='$first_name', last_name='$last_name', registration='$registration', pay_status='$pay_status', physical='$physical', photo='$photo', notes='$notes' 
    WHERE `id` = '$id'"); 

    mysql_affected_rows(); 

    echo mysql_error(); 
} 
?> 

這樣設置的任何時候,如果你的代碼不執行,你知道id未張貼。在這種情況下,可以通過向表單添加隱藏輸入來輕鬆解決這個問題。

<input type="hidden" name="id" value="<?php echo $data2['id']?>" /> 
+0

您的幫助非常感謝Sean,謝謝! – user2447848

+0

沒問題,總是很樂意幫忙。 – Sean

0

我不清楚,但是,你可以試試這個基礎語法嗎?

mysql_query("UPDATE cheer SET team_name='".$team_name."', first_name='".$first_name."', last_name='".$last_name."', registration='".$registration."', pay_status='".$pay_status."', physical='".$physical."', photo='".$photo."', notes='".$notes."' 
WHERE `id` = '".$id."'"); 

這對我多次工作!

+1

php評估變量是否放在雙引號中。 – beerwin

+0

這並不重要 - 「雙引號字符串最重要的特點是變量名稱將被擴展。」http://www.php.net/manual/en/language.types.string.php#language .types.string.syntax.double – Sean

+0

只是嘗試像這樣也可以工作: 「UPDATE cheer SET team_name ='$ team_name',first_name ='$ first_name',last_name ='$ last_name',registration ='$ registration', pay_status ='$ pay_status',physical ='$ physical',photo ='$ photo',notes ='$ notes' WHERE'id' ='$ id'「 –