我有一个PHP程序w/MySQL数据库,其中包含许多记录.特别相关的两列是事件编号和日期.这些都只是前进.但是,有时用户输入的数据不按顺序; 例如:
Incident Date
1 Jan 1 2000
2 Jan 1 2010
3 Jan 1 2002
Run Code Online (Sandbox Code Playgroud)
事件2似乎输入错误的日期,应该是2001年1月1日.
有没有办法查询日期不按顺序的记录?或者我是否必须遍历跟踪上次日期的所有记录才能找到错误?
增加注意:事件不是连续的(它们可能是1,3,6,123等).日期也不是连续的.这些是同一个表中的列.
我想在MySQL表中插入一行,其中一个值应该是现在(MySQL服务器的)时间加上5秒。
我看到MySQL可以识别的NOW()函数,但是我可以在该值上加上秒吗?
我创建了一个使用Simon Tabor的"jquery-toggles"插件(https://github.com/simontabor/jquery-toggles)的简单示例.虽然它有效,但图形永远不会出现.我确认CSS和JS加载正常,但仍然没有图像.有人可以找出原因吗?
<html>
<head>
<link rel="stylesheet" href="/include/jquery-toggles-master/themes/toggles-light.css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script src="/include/jquery-toggles-master/toggles.min.js"></script>
<script>
$(document).ready(function () {
$('.toggle').toggles();
});
</script>
</head>
<body>
<div class="toggle toggle-select" data-type="select"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我正在使用线程telnet服务器(每个连接一个线程),并且无法弄清楚如何摆脱valgrind错误.我把问题缩小到了删除tcpsocket的地方.
我在QThread的run()方法中创建了QTcpSocket:
void TelnetConnection::run()
{
tcpSocketPtr = new QTcpSocket();
if (!tcpSocketPtr->setSocketDescriptor(socketDescriptor)) {
emit error(tcpSocketPtr->error());
return;
}
....
}
Run Code Online (Sandbox Code Playgroud)
当我的应用想断开客户端时,我打电话:
void TelnetConnection::disconnectClient()
{
tcpSocketPtr->disconnectFromHost();
}
Run Code Online (Sandbox Code Playgroud)
并且在socket断开连接时调用的插槽是:void TelnetConnection :: clientDisconnected()
{
tcpSocketPtr->deleteLater();
TelnetConnection::s_clientCount--;
QThread::quit(); // Exit ths event loop for this thread
}
Run Code Online (Sandbox Code Playgroud)
所以,我试过1.删除clientDisconnected插槽中的QTcpSocket,但这会导致读/写不稳定.(偶然崩溃)2.在clientDisconnected插槽中删除,但导致内存读/写错误3.在线程的exec循环后删除但仍然导致内存读/写错误4.在线程的exec循环后删除 - 并且全部错误消失了.
从我读到的内容,如果在exec循环终止后调用deletelater,则会在删除线程时运行.因此,虽然这有效,但我认为这不是正确的方法.
我尝试使用"this"作为父级创建QTcpSocket,但由于父级vs这种不匹配错误,我的信号连接失败.(这将允许在线程销毁时删除QTcpSocket).
解决这个问题的正确方法是什么?
我有一个Qt5/C++程序,它接收一个包含程序名称和可能的参数的QString.我需要将此QString拆分为多个字符串.例如,字符串
/tmp/myprog --param1 --param2=2 --param3="1 2 3" -p 4
Run Code Online (Sandbox Code Playgroud)
应分为:
list[0]=/tmp/myprog
list[1]=--param1
list[2]=--param2=2
list[3]=--param3="1 2 3"
list[4]=-p 4
Run Code Online (Sandbox Code Playgroud)
我的第一个想法是在空间上使用"拆分"方法,但这会打破引用的param3.同样,参数4在-p和4之间没有:或=.
有一个简单的方法吗?我怀疑-p 4是不可能轻易拆分的,因为无法知道下面的两个项目是否在一起.
但是有分裂/正则表达/其他方式分裂上述?(如果我们忽略-p 4有可能吗?)
更新:
相同的函数可以在没有--param或-p的情况下拆分字符串吗?所以一串
abc "a a" "b b b" c
Run Code Online (Sandbox Code Playgroud)
会成为
list[0]=abc
list[1]="a a"
list[2]="b b b"
list[3]=c
Run Code Online (Sandbox Code Playgroud) 我试图遍历a QStringList,打印字符串,然后从列表中删除它.我似乎无法找到一个有效的QStringList方法!例如:
for ( QStringList::Iterator it = commandList.begin(); it != commandList.end(); ++it ) {
out << "Processed command: " << *it << endl;
*it.erase();
}
Run Code Online (Sandbox Code Playgroud)
给出编译错误:'QList :: Iterator'没有名为'erase'的成员
++it如果我在列表中途删除项目可能会失败)为了简化我的清理工作,我想将我的worker对象的父对象设置为它所移动的Qthread.(见下文).
void TelnetServer::incomingConnection(qintptr socketDescriptor)
{
QThread * TelnetConnectionThread = new QThread(this);
TelnetConnection *worker = new TelnetConnection(socketDescriptor,TelnetConnectionThread);
connect(TelnetConnectionThread, SIGNAL(started()), worker, SLOT(start()));
connect(TelnetConnectionThread, SIGNAL(finished()), worker, SLOT(deleteLater()));
worker->moveToThread(TelnetConnectionThread); // Move worker into QThread
TelnetConnectionThread->start();
}
Run Code Online (Sandbox Code Playgroud)
在start()行之前,我添加了:
worker->setParent(TelnetConnectionThread);
Run Code Online (Sandbox Code Playgroud)
但在运行时我看到一个错误,我无法做到这一点,因为新的父级在不同的线程.怎么可能?在上面的行中,我将worker移动到新线程...因此worker应该与TelnetConnectionThread位于同一个线程中.救命?
我确认了一些qDebug和thread()工作者实际上已经转移到了新的线程!
我需要创建Qt5 / C ++的“ tail -5 myfile”等效项(不使用shell命令。我发现了几个stackoverflow引用,它们在文件结尾之前先查找X字节,然后再向前读取,但我希望有一些东西更好。
有可用的Qt功能更好的/更快的方法,还是文件的内存映射(一部分)?(有问题的文件可能很大,所以这必须相对提高内存效率)
我正在创建一个简单的(ish)telnet服务器,现在正在使用valgrind进行调试.代码运行得很好,但valgrind抱怨程序终止时内存丢失...而罪魁祸首是我创建一个新QTcpSocket的行:
void TelnetConnection::run()
{
tcpSocketPtr = new QTcpSocket(); // ** remove this due to parent error
if (!tcpSocketPtr->setSocketDescriptor(socketDescriptor)) {
emit error(tcpSocketPtr->error());
return;
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试将'this'传递给QTcpSocket()但是我尝试连接的信号槽抱怨与另一个父关联.这是问题吗?线索?而且......答案是什么?
我通过将tcpsocketptr赋值为0来删除/释放tcpsocketptr,如下所示.是对的吗?
void TelnetConnection::clientDisconnected()
{
tcpSocketPtr = 0; // ** Cure memory loss?
TelnetConnection::s_clientCount--;
Logger *log = Logger::instance();
log->record(Logger::Information,EVENTID_TELNET_DISCONNECTION,"Telnet client "+QString::number(m_clientNumber) +": Disconnecting");
QThread::quit(); // Exit ths event loop for this thread
}
Run Code Online (Sandbox Code Playgroud) 我创建了一个简单的Qt控制台应用程序(基于Qt提供的示例代码).虽然这是一个控制台应用程序,但ldd显示了许多链接的X11内容.
我在我的.pro文件中注意到了QT += widgets.对于控制台应用来说这似乎很奇怪,所以我删除了小部件但没有编译节目:
main.cpp:13:24: error: QApplication: No such file or directory
main.cpp: In function ‘int main(int, char**)’:
main.cpp:26: error: ‘QApplication’ was not declared in this scope
main.cpp:26: error: expected ‘;’ before ‘app’
main.cpp:47: error: ‘app’ was not declared in this scope
main.cpp: At global scope:
main.cpp:21: warning: unused parameter ‘argc’
main.cpp:21: warning: unused parameter ‘argv’
make: *** [main.o] Error 1
Run Code Online (Sandbox Code Playgroud)
有人能告诉我发生了什么事吗?我是否需要控制台应用程序的小部件?如果没有,为什么我不能成功删除它?