2012-11-02 54 views
0

我已经通过帖子搜索答案,并且最接近的答案来自主题“试图通过php-with-mysql-need-帮助“使用PHP向MySQL发送日期和时间表单字段

我得到了一个带有2个输入字段的表单,用户从html5弹出日历选择器中选择日期,类型在时间,并提交表单到MySQL数据库。我无法获取日期和时间字段来验证/上传到数据库。

在我的MySQL数据库我有一个名为约会的表,名为curdate的列有一个DATE类型的列;另一列与TIME类型一起称为curtime。

我的PHP文件在文件顶部有PHP验证和SQL操作,底部有粘滞html表单。表单用来发送形式

下面是代码:

$td = date('Y-m-d H:i:s', $phpdate); 
$phpdate = strtotime($td); 
if(isset($_POST['submitted'])) { 
    require_once('mysqli_connect.php'); 
    $errors=array(); 
if(empty($_POST['curdate'])) { 
      $errors[]='Your date did not match'; 
     } else { 
      $td=mysqli_real_escape_string($dbc,trim($_POST['curdate'])); 
    } 

    if(empty($_POST['curtime'])) { 
      $errors[]='Your time is empty'; 
    } else { 
     $tt=$_POST['curtime']; 
    } 
if(empty($errors)) { 
    $q="INSERT INTO users (first_name,last_name,email,curdate,curtime,physician,reason) VALUES ('$fn','$ln','$e','$td','$tt','$phys','$reason')"; 
    [email protected]_query($dbc,$q); 

    if($r) { 
     echo '<h1>Thanks</h1> 
     <p>You are now registered</p><p><br/></p>'; 
    } else { 
     echo '<h1>System Error</h1> 
     <p class="error">You could not be registered</p>'; 
     echo '<p>'.mysqli_error($dbc).'<br/><br/>Query:'.$q.'</p>'; 
    } 

    mysqli_close(); 
    include('includes/footer.html'); 
    exit(); 
    } else { 
    echo '<h1>Error</h1> 
    <p class="error">The following errors occurred:<br/>'; 
    foreach ($errors as $msg) { 
     echo "-$msg<br/>\n"; 
    } 
    echo '</p><p> Please try again</p><p><br/></p>'; 
    } 
    mysqli_close($dbc); 
} 
+0

你应该可以将日期以各种口味发送给MySql,例如mm/dd/yyyy,yyyy/mm/dd ......除非创建了多义性,否则mysql不会投诉。 – sinni800

回答

2

MySQL或MySQLi的支持日期格式为“YYYY-MM-DD”,这样你们需要的日期和时间转换成合适的格式插入前在DB

如果你想在用户提交表单,然后使用下面的查询

 
    INSERT INTO users (first_name,last_name,email,curdate,curtime,physician,reason) 
       VALUES ('$fn','$ln','$e',CURDATE(),CURTIME(),'$phys','$reason') 

插入当前日期和时间但如果你想从插入表单域然后执行日期以下

 
    $td=$_POST['curdate']; 
    $tt=$_POST['curtime']; 

    $td=date('Y-m-d',strtotime($td)); //Converts date to 'yyyy-mm-dd' acceptable to mysql 
    $tt=date('H:i:s',strtotime($tt)); //converts time to HH:mm:ss 

    //Now apply Your Query as 
    INSERT INTO users (first_name,last_name,email,curdate,curtime,physician,reason) 
       VALUES ('$fn','$ln','$e','$td','$tt','$phys','$reason') 
0

你可能有一个问题,如果你在mysql中取得该行表dateandtime类型,如果是这样的话,你将无法将其保存这样。如果你想要它就像使用文本或varchar ....

DATE - 以YYYY-MM-DD的形式存储日期值。例如2008-10-23。 DATETIME - 存储表格YYYY-MM-DD HH:MM:SS的日期和时间值。例如2008-10-23 10:37:22。支持的日期和时间范围是1000-01-01 00:00:00一直到9999-12-31 23:59:59 TIMESTAMP - 与DATETIME类似,但有些差异取决于MySQL的版本和服务器正在运行的模式。

相关问题