2015-02-24 61 views
-1

我是新来的PHP,我自学自己,因为我需要。现在,我无法将日期插入数据库。如何正确地将日期插入到数据库中?我检查了我的数据库,但日期字段只有零。如果有人能帮我解决我的问题,我将不胜感激。这是我的代码。在PHP中插入/更新日期

<?php 
if(isset($_POST['submit'])){                
    $fn=$_POST['firstname']; 
    $mi=$_POST['mi']; 
    $ln=$_POST['lastname']; 
    $dn=$_POST['nname']; 
    $age=$_POST['age']; 
    $bio=$_POST['about']; 
    $bday=$_POST['date']; 
    $gnd=$_POST['gender']; 
    $loct=$_POST['loc']; 
    $query = mysql_query("UPDATE user 
         SET firstname='$fn', 
          minitial='$mi', 
          displayName='$dn', 
          age='$age', 
          lastname='$ln', 
          bio='$bio', 
          location='$loct', 
          birthdate='$bday' 
         WHERE username='$user'"); 
} 
?> 
+1

将日期转换为Y-m-d格式并存储到数据库中。 – 2015-02-24 10:07:19

+0

所以问题是什么? – student 2015-02-24 10:07:56

+0

首先不要做那样的查询。使用语句准备和使用[PDO准备语句](http://docs.php.net/pdo.prepared-statements)进行绑定。 – Cunning 2015-02-24 10:10:14

回答

0

使用此代码

$fn=$_POST['firstname']; 
$mi=$_POST['mi']; 
$ln=$_POST['lastname']; 
$dn=$_POST['nname']; 
$age=$_POST['age']; 
$bio=$_POST['about']; 
$bday=date("Y-m-d", strtotime($_POST['date'])); 
$gnd=$_POST['gender']; 
$loct=$_POST['loc']; 
$query = mysql_query("UPDATE user SET firstname='$fn', minitial='$mi', displayName='$dn', age='$age', lastname='$ln', bio='$bio', location='$loct', birthdate='$bday' WHERE username='$user'"); 

mysql_query得到了弃用的PHP5.5所以你必须避免使用它,直接查询。对于真实世界的应用程序和实时项目,您必须使用PDO(PHP数据对象)来避免sql injection

+1

如果您想避免SQL注入,请不要这样做!使用PDO准备的语句或至少逃避插入所有变量 – 2015-02-24 10:16:21

+0

我同意你的意见,但提问者这一行'我是一个PHP的新手,我自学自己'让我以这种方式回答它 – 2015-02-24 10:17:23

+1

@yiiframe可怕的借口。始终教导和传播更好的方法。学习一种更好的开始方式比摆脱坏习惯更容易。 – 2015-02-24 10:18:09