我正在编写一个脚本来查询某些设备并将数据写入PostgreSQL数据库。
数据包含格式为<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/owl-carousel/1.3.3/owl.carousel.js"></script>
<div class="row">
<h4 style="text-align: center;">Cadeaux À Votre Portée</h4>
<div class="customNavigation">
<img src="http://placehold.it/500" style="margin-right: 20px;" /><a class="btn prev"><</a> <a class="btn next">></a>
<img src="http://placehold.it/500" style="margin-left: 20px;" />
</div>
</div>
<div class="row">
<div id="owl-demo" class="owl-carousel owl-theme">
<p:panel styleClass="item">
<div class="row">
<p:graphicImage styleClass="img" library="espace" name="http://placehold.it/500" />
</div>
<div class="row">Lorem Ipsum</div>
<div class="row">
<p:commandButton icon="fa fa-shopping-cart" />
</div>
<div class="row">1700 PTs</div>
</p:panel>
<p:panel styleClass="item">
<div class="row">
<p:graphicImage styleClass="img" library="espace" name="http://placehold.it/500" />
</div>
<div class="row">Lorem Ipsum</div>
<div class="row">
<p:commandButton icon="fa fa-shopping-cart" />
</div>
<div class="row">1250 PTs</div>
</p:panel>
<p:panel styleClass="item">
<div class="row">
<p:graphicImage styleClass="img" library="espace" name="http://placehold.it/500" />
</div>
<div class="row">Lorem Ipsum</div>
<div class="row">
<p:commandButton icon="fa fa-shopping-cart" />
</div>
<div class="row">900 PTs</div>
</p:panel>
<p:panel styleClass="item">
<div class="row">
<p:graphicImage styleClass="img" library="espace" name="http://placehold.it/500" />
</div>
<div class="row">Lorem Ipsum</div>
<div class="row">
<p:commandButton icon="fa fa-shopping-cart" />
</div>
<div class="row">1300 PTs</div>
</p:panel>
<p:panel styleClass="item">
<div class="row">
<p:graphicImage styleClass="img" library="espace" name="http://placehold.it/500" />
</div>
<div class="row">Lorem Ipsum</div>
<div class="row">
<p:commandButton icon="fa fa-shopping-cart" />
</div>
<div class="row">3000 PTs</div>
</p:panel>
<p:panel styleClass="item">
<div class="row">
<p:graphicImage styleClass="img" library="espace" name="http://placehold.it/500" />
</div>
<div class="row">Lorem Ipsum</div>
<div class="row">
<p:commandButton icon="fa fa-shopping-cart" />
</div>
<div class="row">1500 PTs</div>
</p:panel>
<p:panel styleClass="item">
<div class="row">
<p:graphicImage styleClass="img" library="espace" name="http://placehold.it/500" />
</div>
<div class="row">Lorem Ipsum</div>
<div class="row">
<p:commandButton icon="fa fa-shopping-cart" />
</div>
<div class="row">900 PTs</div>
</p:panel>
<p:panel styleClass="item">
<div class="row">
<p:graphicImage styleClass="img" library="espace" name="http://placehold.it/500" />
</div>
<div class="row">Lorem Ipsum</div>
<div class="row">
<p:commandButton icon="fa fa-shopping-cart" />
</div>
<div class="row">1300 PTs</div>
</p:panel>
<p:panel styleClass="item">
<div class="row">
<p:graphicImage styleClass="img" library="espace" name="http://placehold.it/500" />
</div>
<div class="row">Lorem Ipsum</div>
<div class="row">
<p:commandButton icon="fa fa-shopping-cart" />
</div>
<div class="row">1300 PTs</div>
</p:panel>
<p:panel styleClass="item">
<div class="row">
<p:graphicImage styleClass="img" library="espace" name="http://placehold.it/500" />
</div>
<div class="row">Lorem Ipsum</div>
<div class="row">
<p:commandButton icon="fa fa-shopping-cart" />
</div>
<div class="row">1300 PTs</div>
</p:panel>
<p:panel styleClass="item">
<div class="row">
<p:graphicImage styleClass="img" library="espace" name="http://placehold.it/500" />
</div>
<div class="row">Lorem Ipsum</div>
<div class="row">
<p:commandButton icon="fa fa-shopping-cart" />
</div>
<div class="row">1300 PTs</div>
</p:panel>
</div>
</div>
的日期。数据库使用DateType“German”,该列的类型为Timestamp,没有时区。
我总是收到此错误消息
DBD :: Pg :: st执行失败:错误:类型为timestamp的输入语法无效: “TO_TIMESTAMP('19 .06.2015 11:24:20','DD.MM.YYYY HH24:MI:SS')::没有时区的时间戳” 在temp_alcp2e_db.pl第80行,第289行。
我正在使用此代码,其中31.12.2015 13:45:00
具有日期值:
$date_db
希望有人可以告诉我我做错了什么。
答案 0 :(得分:1)
该函数可以(并且必须)成为预准备语句的一部分。
重写您的代码,如下所示:
$stmt =$dbh->prepare(q{
INSERT INTO rifutemp ("USER_LINK_ID","IP","DATUM","TEMPERATURE")
VALUES (?, ?,
TO_TIMESTAMP(?, 'DD.MM.YYYY HH24:MI:SS')::timestamp without time zone,
?)
});
$stmt->execute($key_bgtr,$key_ip,$date_db,$temperatur) or die $DBI::errstr;
答案 1 :(得分:0)
好的,我发现了我的问题/错误来源:
为了直观地管理数据库,我正在使用“用于PostgreSQL的EMS SQL Manager Lite”,这个漂亮的GUI工具总是将DateStyle选项设置为“ISO,MDY”。
我刚刚改变了我的代码:
$dbh->do("SET datestyle = 'German'");
$stmt =$dbh->prepare("INSERT INTO rifutemp (\"USER_LINK_ID\",\"IP\",\"DATUM\",\"TEMPERATURE\")
VALUES (?, ?, ?, ?)");
$stmt->execute($key_bgtr,$key_ip,$date_db,$temperatur) or die $DBI::errstr;
并将$ date_db变量设置为正确的格式:
$date_db = Time::Piece->new->strftime('%d.%m.%Y %H:%M:%S');
现在一切正常!