2014-10-11 138 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); 
    } 
} 

这只是一个简单的检查,给你一个想法。