用户输入未添加/更新到SQL数据库

时间:2013-08-31 10:05:22

标签: php mysql sql

我在过去两周内搜索了超过1500个帖子,并且没有找到使我的代码正常工作的解决方案。我的注册和登录表单正常工作,但是当用户登录添加或编辑信息时,sql数据库不会随用户输入更新,并且错误/更新消息不会回显。我的用户使用姓名,电子邮件和密码进行注册,但一旦登录,他们需要添加个人信息,然后才能编辑个人信息。但是我尝试过的任何东西都没有用...请帮助我,我真的需要做到这一点....我的代码如下:

PHP CODE:

<?php
include_once "connect_to_mysql.php";
$id = $_SESSION['id'];

$title=$_POST['title'];
$username=$_POST['username'];
$surname=$_POST['surname'];
$identityno=$_POST['identityno'];
$gender=$_POST['gender'];
$birthdate = strftime("%d %b %Y", strtotime($row['birthdate']));
$ethnicity=$_POST['ethnicity'];
$nationality=$_POST['nationality'];
$homeaddress=$_POST['homeaddress'];
$province=$_POST['province'];
$suburb=$_POST['suburb'];
$hometele=$_POST['hometele'];
$celltele=$_POST['celltele'];
$creditclear=$_POST['creditclear'];
$criminalrecord=$_POST['criminalrecord'];
$driverslicense=$_POST['driverslicense'];
$owntransport=$_POST['owntransport'];
$medicalconditions=$_POST['medicalconditions'];

$query("UPDATE cic_candidates SET title='$title', username='$username', surname='$surname', 
identityno='$identityno', gender='$gender', birthdate='$birthdate', ethnicity='$ethnicity', 
nationality='$nationality', homeaddress='$homeaddress', province='$province', suburb='$suburb', 
hometele='$hometele', celltele='$celltele', creditclear='$creditclear', 
criminalrecord='$criminalrecord', driverslicense='$driverslicense', 
owntransport='$owntransport', medicalconditions='$medicalconditions' WHERE id='$id'");
mysql_query($query);

echo 'Your account info has been updated, you will now see the new info.<br /><br />
To return to your profile edit area, <a href="edit_personal_details.php">click here</a>';
exit();
mysql_close();

?>

2 个答案:

答案 0 :(得分:0)

除了上面提到的SQL注入问题(姓氏O'Connor会破坏你的代码,这是可能发生的最不好的事情),你在创建时错过了赋值运算符$query

$query("UPDATE cic_candidates ....

PHP将其解释为函数调用而不是赋值。您不需要括号,并且您需要一个赋值运算符:

$query = "UPDATE cic_candidates ....

你应该考虑从mysql_函数转移到mysqli_或PDO。它们都使您更容易编写更安全的代码。但至少需要清理您添加到数据库中的数据

答案 1 :(得分:0)

更改

$query("sql query string"); 

$query = "sql query string"; 

然后执行

mysql_query($query);