我在将日期发布到我的数据库以及在重新加载页面时检索它时遇到了问题。我希望它自动为最后一个条目添加时间戳。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Location Tracker</title>
</head>
<body>
<hl> ACW Location Tracker </hl>
<?php
$server = 'SQL2008.net.dcs.hull.ac.uk';
$connectionInfo = array("Database"=>"rde_531545");
$conn = sqlsrv_connect($server,$connectionInfo);
$query='create table Location ';
$query .= '(Username int NOT NULL IDENTITY(500, 23), First_Name varchar(50) NOT NULL, Surname varchar(50) NOT NULL, Current_Location varchar(50) NOT NULL, Date datetime NOT NULL, PRIMARY KEY (Username))';
$result = sqlsrv_query($conn, $query);
if (!$result)
{
if( ($errors = sqlsrv_errors() ) != null)
{
foreach( $errors as $error ) {
echo "<p>Error: ".$error[ 'message']."</p>";
}
}
}
else {
echo "<p>DB successfully created</p>";
}
sqlsrv_close($conn);
$connectionInfo = array( "Database"=>"rde_531545");
$conn = sqlsrv_connect($server,$connectionInfo);
$insert_query = "INSERT INTO Location (First_Name, Surname, Current_Location, Date) VALUES (?, ?, ?,? )";
$params = array("John","Doe","Hull", Date);
$result = sqlsrv_query($conn,$insert_query,$params);
$params = array("Jane","Doe","Hull", Date);
$result = sqlsrv_query($conn,$insert_query,$params);
$LocationQuery='SELECT Username, First_Name, Surname, Current_Location, Date FROM Location';
$results = sqlsrv_query($conn, $LocationQuery);
if ($results) while($row = sqlsrv_fetch_array($results, SQLSRV_FETCH_ASSOC))
{
echo '<p>'.$row['Username'].' '.$row['First_Name'].' '.$row['Surname'].' '.$row['Current_Location'].' '.$row['Date'].'</p>';
}
?>
</body>
</html>
我得到的错误是:
注意:使用未定义的常量日期 - 在 C:\RDEUsers\NET\531545\Location.php 中第 44 行假定为“日期”
警告:date_create() [function.date-create]:依赖系统的时区设置是不安全的。您需要使用 date.timezone 设置或 date_default_timezone_set() 函数。如果您使用了
enter code here
这些方法中的任何一种并且仍然收到此警告,则很可能是您拼错了时区标识符。我们enter code here
在第 49 行的 C:\RDEUsers\NET\531545\Location.php 中为“0.0/no DST ”选择了“Europe/London”可捕获的致命错误:第 51 行的 C:\RDEUsers\NET\531545\Location.php 中的 DateTime 类对象无法转换为字符串
您正在发送一个类Date
,而不是发送一个字符串“2017-02-03”。
错误在 $params = array(....., Date);
在这段代码的第二行中:
$insert_query = "INSERT INTO Location (First_Name, Surname, Current_Location, Date) VALUES (?, ?, ?,? )";
$params = array("John","Doe","Hull", Date);
您需要创建一个 Date 对象$date = new DateTime();
并进入查询,您需要从中提取字符串,format
函数:
$dateStr = $date->format(''Y-m-d H:i:s'');
然后,在您的参数中使用 $dateStr: $params = array("John","Doe","Hull", $dateStr);
编辑 1:
$date = new DateTime();
$dateStr = $date->format('Y-m-d H:i:s');
$params = array("John","Doe","Hull", $dateStr);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句