2014-02-21 63 views
-1

我的更新腳本無法正常工作..我不知道什麼即時消失.. 但我無法更新表...去過w3school瞭解更新在PHP但仍不會工作... -noob coder-更新無法正常工作我找不到我的錯誤

<?php 
include 'Core/init.php'; 
protect_page(); 
include 'Includes/Overall/overallheader.php'; 
?> 
<h1>Update School Year and Semester</h1> 
<?php 
$con=mysqli_connect("localhost","root","1234","database3"); 
// Check connection 
$sy = $_POST['school_year']; 
$sem = $_POST['semester']; 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 
if (isset($_POST['submit'])) 
{ 
$sql = "UPDATE `activesys` SET `activeschoolyear` = '$sy' AND `activesemester` = '$sem'"; 
$exec = mysql_query($sql) or die(mysql_error()); 
} 
?> 
<form action="" method="post"> 
<ul> 

<li> 
    School Year:<br /> 
    <input type="text" name="school_year"> 
</li> 
<li> 
    Semester:<br /> 
    <input type="text" name="semester"> 
</li> 
<li> 
    <input type="submit" value="submit"> 
</li> 

</ul> 
</form> 


<?php 
include 'Includes/Overall/overallfooter.php'; 
?> 
+3

不能混合到'mysqli的電話()'和'MySQL的()' - 只需使用'mysqli的()'。順便說一句,如果你想要很好的參考資料,請使用[PHP](http://www.php.net)網站。 – 2014-02-21 06:58:16

+1

你得到什麼錯誤? *注意:*永遠不要參考w3schools教程,它有許多小故障在其中錯過指導用戶。 – Rikesh

+0

你必須在更新查詢中加上逗號分隔值。 like 'update table_name set field = value1,field2 = value2 .....' 你已經把'和'代替了'逗號'。 –

回答

0

你已經錯過了在那裏的條件更新詢問..嘗試這個

UPDATE table_name 
    SET column1=value, column2=value2,... 
    WHERE some_column=some_value 

$sql = "UPDATE `activesys` SET `activeschoolyear` = '$sy' AND `activesemester` = '$sem'" WHERE some_column=some_value; 
0

首先,你混mysqlimysql。其次,mysql_query/mysqli_query有兩個參數。第三,你的sql不對。

所以,你$exec = mysql_query($sql) or die(mysql_error())

$exec = mysqli_query($con,$sql) or die(mysqli_error($con));

改變你的SQL更改爲:

$sql = "UPDATE `activesys` SET `activeschoolyear` = '$sy' , `activesemester` = '$sem'"; 

,但你沒有一個where條件在這裏,如果你的表您設置了 anto-increment鍵並將其設置爲主鍵,您可以添加一些條件結束您的sql,否則將更新您的所有記錄 。

$sql = "UPDATE `activesys` SET `activeschoolyear` = '$sy' , `activesemester` = '$sem' where id={$id}" 

$ id是來自你表格的一個recod。

這應該爲你工作EXCUTE更新..

+0

我確實改變了它,但仍然沒有更新..是我的Sql組成的權利? –

+0

@ TadanoMugi,沒有你的sql是不正確的..我會更新我的答案.. –

+0

我試過你的建議仍然不工作.. –

1

即使它沒有直接realated:

請務必逃脫您使用函數mysql_escape_string加載從$ _POST或$ _GET請求數據。否則,在查詢中注入SQL將很容易,這將允許在系統中運行有害的sql,如刪除數據庫或操作數據。

http://en.wikipedia.org/wiki/SQL_injection

0

嘗試使用這樣的:

1)使用 「動作」 標籤

<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post"> 

2)的屬性檢查表單是否已beensubmitted:

if(isset($_POST['submit'])) 

3)在你的SQL查詢中使用WHERE條件。你最終的查詢應該是這樣的:

<?php 
if(isset($_POST['submit'])) 
{ 
    $con = mysqli_connect("localhost","root","1234","database3"); 

    if (mysqli_connect_errno()) 
    { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
     exit(); 
    } 

    $query = " 
     UPDATE `activesys` 
     SET `activeschoolyear` = '$sy',`activesemester` = '$sem' 
     WHERE `columnName` = `columnValue` 
    "; 
    mysqli_query($con,$query); 
} 
+0

我不知道我會把什麼聲明.. 因爲表activesys只有2列活躍學年和活躍學科 –