这是我正在使用的代码:
if (!($fp = fsockopen('ssl://imap.gmail.com', '993', $errno, $errstr, 15)))
echo "Could not connect to host";
$server_response = fread($fp, 256);
echo $server_response;
fwrite($fp, "C01 CAPABILITY"."\r\n");
while (!feof($fp)) {
echo fgets($fp, 256);
}
Run Code Online (Sandbox Code Playgroud)
我收到了第一个回复:
OK Gimap ready for requests from xx.xx.xx.xx v3if9968808ibd.15
Run Code Online (Sandbox Code Playgroud)
但随后页面超时.我搜索了stream_set_blocking,stream_set_timeout,stream_select,fread等,但无法让它工作.我需要读取服务器发送的所有数据,然后继续执行其他命令(我将使用imap检索电子邮件).
谢谢
所以说我们有3个领域, username, start_date, end_date
用户启动和停止多个记录,例如,bob已经启动并停止了两个记录.
bob 1/2/13 11:00 1/2/13 13:00
jack 1/2/13 15:00 1/2/13 18:00
bob 2/2/13 14:00 1/2/13 19:00
Run Code Online (Sandbox Code Playgroud)
我需要知道每个用户所花费的平均时间(即开始和结束之间的差异),以小时为单位(即按用户分组,而不仅仅是每行).
我不能完全理解如何做差异,平均AND组?有帮助吗?
假设我有这个表:
select * from window_test;
k | v
---+---
a | 1
a | 2
b | 3
a | 4
Run Code Online (Sandbox Code Playgroud)
最终我想得到:
k | min_v | max_v
---+-------+-------
a | 1 | 2
b | 3 | 3
a | 4 | 4
Run Code Online (Sandbox Code Playgroud)
但我会很高兴得到这个(因为我可以很容易地过滤它distinct):
k | min_v | max_v
---+-------+-------
a | 1 | 2
a | 1 | 2
b | 3 | 3
a | 4 | 4
Run Code Online (Sandbox Code Playgroud)
使用PostgreSQL 9.1+窗口函数可以实现这一点吗?我试图了解我是否可以使用单独的分区来处理k=a此示例中的第一次和最后一次(按顺序排列v).
我有一个表格,比方说250个网址:
create table url (
id serial,
url varchar(64)
)
Run Code Online (Sandbox Code Playgroud)
这些URL分别对应于网站.每个网站都有不同的受欢迎程度.比方说,在id=125(集中于高斯一)是最流行的,那些在id=1或者id=250是最流行的.
我想在"url"表中提供的"log"表格中填充"log"表,其值为url,但考虑到不同的URL可能更频繁地出现(例如,id为125的url url将是最受欢迎).
create table log (
id serial,
url_id integer
)
Run Code Online (Sandbox Code Playgroud)
我想避免使用,random()因为它是统一的而不是非常"真实".
如何用Postgresql实现这一目标?
当我尝试在两个不同的Win 7笔记本电脑上安装ADO.NET版本的SQLite时,我收到以下错误:
Installer.exe: #32 @ 2012.05.06T13:58:34.8921292: Configuration.Process: No actual changes will be made to this system because "what-if" mode is enabled.
Installer.exe: #33 @ 2012.05.06T13:58:34.8951293: TraceOps.ShowMessage: Cannot continue, the "confirm" option is not enabled.
Run Code Online (Sandbox Code Playgroud)
我以管理员身份运行Installer.exe.
我的表中有一个时间戳字段,它以 UTC-10 格式存储数据。但是,正确的时区是 UTC+10
我想在不改变时间的情况下将时区部分更改为 UTC+10。只希望系统考虑与 UTC+10 而不是 UTC-10 相同的时间戳
如果我这样做
select email_timestamp as time zone 'UTC+10' from emails
Run Code Online (Sandbox Code Playgroud)
然后它也会改变时间。
有人可以告诉我如何在不改变时间的情况下更改时区部分吗?
有T(user, timestamp,...)100毫升+记录的表(PostgreSQL 9.1).
表单的查询
SELECT *
FROM T
WHERE user='abcd'
ORDER BY timestamp
LIMIT 1
Run Code Online (Sandbox Code Playgroud)
timestamp当有大约100000个用户记录时,使用索引而不是用户索引.
使用时间戳索引总是会得到较差的结果(20秒以上),因为它最终会扫描所有记录.timestamp通过更改要使用的查询来绕过索引ORDER BY DATE(timestamp)将导致查询求助于用户索引并给出小于100毫秒的结果.
为什么postgresql忽略user索引timestamp而是使用索引(时间戳索引需要查看所有记录)?是否有任何postgresql配置参数可以更改,以使查询使用用户名索引本身?
我有一个带有ltree路径列的表.在我的层次结构中,标签的路径是唯一的,这意味着每个标签都只有一个父标签.换句话说,表中没有两个以相同标签结尾的ltree路径.
我有一个ltree标签,让我们说"C".
我可以使用以下查询找到此标签的所有后代行:
select * from myTree where path ~ '*.C.*';
Run Code Online (Sandbox Code Playgroud)
这工作正常,并提供正确的子树.
现在我需要实现查询以查找此给定标签的所有祖先行.我的意思是如果表中有3行标有"A","AB","ABC",我想得到路径为"A"和"AB"的行(可能包括"ABC"本身,现在没关系).
如果我知道"C"的完整路径(上例中的"ABC"),则@>操作员可以轻松完成任务.但是,现在我只知道"C",我仍然希望通过单个查询来完成任务.有没有办法做到这一点?
如何将我转换bytearray('b\x9e\x18K\x9a')为这样的东西 - > \x9e\x18K\x9a<---只是str,而不是数组!
>> uidar = bytearray()
>> uidar.append(tag.nti.nai.uid[0])
>> uidar.append(tag.nti.nai.uid[1])
>> uidar.append(tag.nti.nai.uid[2])
>> uidar.append(tag.nti.nai.uid[3])
>> uidar
bytearray('b\x9e\x18K\x9a')
Run Code Online (Sandbox Code Playgroud)
我尝试解码我的bytearray
uid = uidar.decode('utf-8')
Run Code Online (Sandbox Code Playgroud)
但它不能......
Traceback (most recent call last):
File "<pyshell#42>", line 1, in <module>
uid = uidar.decode("utf-8")
File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0x9e in position 0: invalid start byte
Run Code Online (Sandbox Code Playgroud)
请帮帮我 ...
我正在尝试诊断 PHP 问题。我将值传递给$_SESSION数组,并且这些值不会被数组获取。我曾经var_dump($_SESSION)看到被退回的东西,然后我得到了array (0){}。即使我知道正在设置会话并将值添加到数组中,情况也是如此。
这是我的代码的简化版本(index.php):
<?php
session_start();
var_dump($_SESSION);
if ($_REQUEST['query'] == "" or is_null($_REQUEST['query'])) {
$errormsg = "You must enter a search term to query. Please try again.";
}
?>
<form name="product_search" id="product_search" method="post" action="index.php">
<input size="60" type="text" name="query" id="query" <?php echo "value=\"" . $_REQUEST['query'] . "\" "; ?>/>
<?php if (isset($errormsg)) {echo "<span class=\"errormsg\">" . $errormsg . "</span>";} ?>
<input type="submit" class="searchBtn" value="Search"/>
<?php
$_SESSION['query'] = 'foo';
$_SESSION['search_field'] = 'man';
$_SESSION['results'] = 'chu'; …Run Code Online (Sandbox Code Playgroud)