2014-10-11 137 views
0

我在編程/編程方面很新,因此解決問題對我來說根本不容易。我必須讓一個PHP頁面,讓我顯示MySQL表,讓我更新值並插入新的。使用php來更新mysql數據庫

目前我陷入了更新按鈕,錯誤說:「解析錯誤:語法錯誤,意外'}'在第21行/home/madisu/public_html/webprog1/kodutoo_toovoog/kodutoo_3.php」。

我認爲這是控制「更新」按鈕是否工作的代碼?

if(isSet($_POST['update'])) { 
    $UpdateQuery = "UPDATE proov SET id='$_POST[id]', name='$_POST[name]', email='$_POST[email]', phone='$_POST[phone]' WHERE id='$_POST[hidden]'"; 
    mysql_query($UpdateQuery, $dbc) 
} 
+0

@ madis121:請仔細閱讀** SQL注入**和其他/類似的漏洞。 – lxg 2014-10-11 16:40:35

+0

你在mysql_query()行上有一個缺失的分號。 – mauris 2014-10-12 01:55:29

回答

0
if(isset($_POST['update'])) { 
    $id = mysql_real_escape_string($_POST['id']); 
    $name = mysql_real_escape_string($_POST['name']); 
    $email = mysql_real_escape_string($_POST['email']); 
    $phone = mysql_real_escape_string($_POST['phone']); 
    $hidden = mysql_real_escape_string($_POST['hidden']); 

    $UpdateQuery = "UPDATE proov SET id='$id', name='$name', email='$email', phone='$phone' WHERE id='$hidden'"; 
    mysql_query($UpdateQuery, $dbc); 
} 

你錯過了一個分號替換你的代碼...

注意:使用unsanitized POST va並不是一個好主意爲db查詢提供線索。

注2:爲什麼不使用Adminer或PHPMyAdmin?

+0

哦,是的!傻我哈哈。感謝所有的快速回復!我不知道,我可能應該使用比我的uni服務器更好的東西。再次感謝您的建議。 – madis121 2014-10-11 11:27:30

+0

如果你注意到插入未轉義的$ _POST數據到一個查詢我們不好,你爲什麼不修復它? – lxg 2014-10-11 16:48:35

-1

分號後缺少分號。

mysql_query($UpdateQuery, $dbc) 

更正如下。

if(isSet($_POST['update'])) { 
$UpdateQuery = "UPDATE proov SET id='$_POST[id]', name='$_POST[name]', email='$_POST[email]', phone='$_POST[phone]' WHERE id='$_POST[hidden]'"; 

mysql_query($UpdateQuery, $dbc); //CORRECTED 

} 
0

你缺少一個右分號

mysql_query($UpdateQuery, $dbc); 
0

與下面的代碼

if(isSet($_POST['update'])) { 
    $UpdateQuery = "UPDATE proov SET id='".$_POST['id']."', name='".$_POST['name']."', email='".$_POST['email']."', phone='".$_POST['phone']."' WHERE id='".$_POST['hidden']."'"; 
mysql_query($UpdateQuery, $dbc); 

} 
-1

嘗試用下面的代碼

if(isset($_POST['update'])) { 
    $UpdateQuery = "UPDATE proov SET id='".$_POST['id']."', name='".$_POST['name']."', email='".$_POST['email']."', phone='".$_POST['phone']."' WHERE id='".$_POST['hidden']; 
    mysql_query($UpdateQuery, $dbc); 

} 
-1
if (isSet($_POST['update'])) { 
    $errors = true; 
    // Check if the values are set 
    if (isset($_POST['id'], $_POST['name'], $_POST['email'], $_POST['phone'], $_POST['hidden'])) 
    $errors = false; 

    if (!$errors) { 
    $id = $_POST['id']; 
    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $phone = $_POST['phone']; 
    $hidden = $_POST['hidden']; 

    $UpdateQuery = "UPDATE proov SET id='$id', name='$name', email='$email', phone='$phone' WHERE id = '$hidden'"; 
    mysql_query($UpdateQuery, $dbc); 
    } else { 
    echo "An error occurred. One or more of the post values were not set."; 
    trigger_error(var_dump($_POST['update']), E_USER_WARNING); 
    } 
} 

這只是一個簡單的檢查,給你一個想法。