使用Datetime2和php时出现问题

时间:2014-07-07 16:53:13

标签: php sql

我的任务是更新我的大学IT部门的库存网站。库存存储在Microsoft SQL Server中,而网站存储在php中。之前,他们使用名为lastUpdated的Date数据类型来存储上次更新库存页面的时间。现在他们想要添加时间戳,所以我将lastUpdated列更改为datetime2。

我正在尝试编辑php以反映此更改,但是当我提交表单时它会给我以下错误(单击“添加清单”按钮):从字符串转换日期和/或时间时转换失败

我对php的了解有限。我的主管知道这一点,但我说我应该为学习经历这样做。我尝试使用谷歌搜索错误,但(很可能是由于我缺乏经验)没有任何效果。如果有人可以帮助我,我会非常感激。

尝试粘贴相关代码而不需要额外的库存资料。

$_POST['lastUpdated'] = sanitize($_POST['lastUpdated']);
<div class='row'>
          <label for='lastUpdated'>Last Updated:</label>
          <input type='text' id='ldate' name='lastUpdated' class='readonly' size='20' value='".date("Y-m-d H:i:s")."' readonly />  
          <span id='ldateInfo'>Last updated in inventory</span>
</div>      

$params = array(&$_POST['contactID'], &$_POST['propertyNum'], &$_POST['serialNum'], &$_POST['bldg'], &$_POST['room'], &$_POST['offCampus'], &$_POST['description'], &$_POST['status'], &$_POST['dateAdded'], &$_POST['lastUpdated'], &$_POST['computerName'], &$_POST['warrantyDate']);
    $tsql = "INSERT INTO dbo.tblInventory (contactID, propertyNum, serialNum, bldg, room, offCampus, description, status, dateAdded, computerName, warrantyDate, lastUpdated) 
            VALUES (?,?,?,?,?,?,?,?,?,?,?,?)";
    $insertInventory = $conn->prepare($tsql);
    $insertInventory->execute($params);

2 个答案:

答案 0 :(得分:0)

php中没有直接的函数来获取MSSQL Datetime2字符串。

我建议你在MSSQL DB上创建存储过程。 您可以将所需数据传递给该过程。 将lastUpdated作为当前日期获取并在存储的采购中触发插入查询。

答案 1 :(得分:0)

发现愚蠢的简单解决方案:$ params中的值与$ tsql中的值不匹配。随之而来的是哭声。