使用优化的字符串更新二进制(8)字段

时间:2014-10-09 10:58:30

标签: php sql sql-server

我需要使用优化的'timestamp'值更新数据类型为timestamp binary(8)的字段。

我尝试了以下内容:

$date = date('Y-m-d H:i:s', time()); // this shows as YYYY-MM-DD HH:MM:SS
$timestamp = strtotime($date); // this shows as 1412850218

当我尝试将$timestamp插入binary(8)字段时,我被告知数据类型varchar与数据类型binary不兼容。 This is to be expected

如何使用PHP优化字符串1412850218以与数据类型binary(8)兼容?

或者(甚至更好)如何在SQL中定义一个默认约束,当插入一行时会自动填充该字段?

我看了一个类似的问题here,但OP的评论显示他/她希望能够在中创建两个 binary(8)字段表,这对这个问题没有帮助。

我正在使用SQL Server 2012 Express。

修改

// NEW TIMESTAMP VARIABLE
$time = time();
$Timestamp = pack('H*', $time); // converted to binary as suggested

// PDO AND SQL CODE
$INSERT_STATEMENT = $DBH->prepare(" // $DBH is defined and connects fine
    INSERT INTO table (
        Timestamp
    ) VALUES (
        :Timestamp
    )
");
$INSERT_STATEMENT->bindParam(':Timestamp', $Timestamp);

if($INSERT_STATEMENT->execute()){
    // redirect
}else{
    print_r($INSERT_STATEMENT->errorInfo());
}

0 个答案:

没有答案