等待超时 - Windows(Waiting with timeout - Windows)
我的程序,在C ++中,有一个线程将数据插入缓冲区,另一个读取此数据的线程。 当没有更多数据要读取时,我要等到另一个线程插入新数据。 我主要在linux上工作,但我不知道如何在Windows中做到这一点。 我发现的最相似的东西是“WaitForSingleObject”函数,但它并不完全是我需要的,因为我不想哭,直到插入数据的线程死了。
有人可以指导我到一个我可以阅读更多的地方吗? 谢谢!
My program , in C++, has a thread that insets data to a buffer, and another thead that reads this data. when there is no more data to read, I wan to wait till the other thread inserts new data. I mostly work on linux, but I dont know how to do it in Windows. the most similar thing that I've found is the "WaitForSingleObject" function, but it's not exactly what I need since I dont want to wail till the thread that inserts data is dead.
can someone please direct me to a place I can read about this more? thanks!
原文:https://stackoverflow.com/questions/12934280
最满意答案
您可以使用
PDOStatement
的rowCount()
方法来获取返回的行数:$stmt = $dbh->prepare("SELECT * FROM customers where customer_email = ? LIMIT 1"); if ($stmt->execute(array($_POST['customer_email']))) { if($stmt->rowCount() > 0) { //fetch stuff... } }
或者,如果
rowCount()
证明不可靠,那么可以这样做:$all = $stmt->fetchAll(); if(count($all)) { //loop through the set... }
You can use the
rowCount()
method ofPDOStatement
to get the number of rows returned:$stmt = $dbh->prepare("SELECT * FROM customers where customer_email = ? LIMIT 1"); if ($stmt->execute(array($_POST['customer_email']))) { if($stmt->rowCount() > 0) { //fetch stuff... } }
Or, if
rowCount()
proves to be unreliable, you can do this:$all = $stmt->fetchAll(); if(count($all)) { //loop through the set... }
相关问答
更多-
伙计们,我每次测试都会开始新的连接。 这就是原因。 guys I was starting a new connection at every test. That was the reason.
-
代码已经过测试,现在可以使用了 首先创建表并插入记录 create table sectona_product(id int primary key auto_increment, hs varchar(100), nv varchar(80),vsa varchar(86)); insert into sectona_product(hs,nv,vsa) values('jon','gab','secunda');看起来你有一个关于无缓冲结果的问题。 你应该使用store_result: $getEmail->execute(); $getEmail->store_result(); $countRows = $getEmail->num_rows; It seems that you have an issue regarding unbuffered result. You should use store_result: $getEmail->execute(); $getEmail->store_resul ...看起来非常接近。 我添加了两行。 一行存储结果,另一行存储检查以确保您有来自查询的响应。 运行它,看看它是否有帮助。 $sql = "SELECT `username` FROM `usrs` WHERE `username` = ? "; $statement = $this->conn->prepare($sql); if (!statement) { throw new Exception($statement->error); } $statement->bind ...
在数据库中使用PDO预处理语句检查是否有任何结果(SELECT with PDO prepared statements within Database check if there are any results)[2023-08-11]
这两行是一团糟: $pdo->prepare$sql=('SELECT * FROM members WHERE username = :username and password = :password' ); $pdo->execute(array(':username' => $username, ':password'=>$password)); 首先,我们没有看到您创建了PDO连接。 有一个mysqli连接。 选择PDO或mysqli,您不能混合两个库中的函数。 PDO prepare函数/方法 ...是和否:有必要再次检查$field变量white-list - 这是防止sql注入的唯一方法 - 但是在$field变量上使用mysqli_real_escape_string是没有意义的。 如果您的列名是保留字或以例如数字开头,则应在反引号中引用它,但就是这样。 您仍然应该为$search变量使用mysqli_real_escape_string准备语句,尽管mysqli_real_escape_string也会这样做(而不是准备好的语句,而不是两者)。 Yes and no: It is necessa ...如何用Prepared Statements检查是否有结果(How to check if there are results with Prepared Statements)[2023-02-22]
您可以使用PDOStatement的rowCount()方法来获取返回的行数: $stmt = $dbh->prepare("SELECT * FROM customers where customer_email = ? LIMIT 1"); if ($stmt->execute(array($_POST['customer_email']))) { if($stmt->rowCount() > 0) { //fetch stuff... } } 或者,如果rowCou ...mysqli_num_rows适用于SELECT语句。 $stmt_check = $conn->prepare("SELECT * FROM users WHERE email =? AND password =?"); $stmt_check->bind_param("ss", $email, $password); $stmt_check->execute(); if(mysqli_num_rows($stmt_check) > 0) 更新的代码由于PDO参数不能用于表名和列名,因此最好以表/列名和排序顺序指定为PHP变量以及可用于值的任何文字的方式编写查询字符串。用作占位符/有界参数。 因此,您的功能看起来像: public function findMany2ordered($field, $value, $field2, $value2, $order, $direction) { $stmt = $this->pdo->prepare('SELECT * FROM ' . $this->table ...何时使用准备好的陈述?(When to use prepared statements?)[2023-04-29]
您应该始终使用预准备语句。 这样可以防止SQL注入的任何可能性(提供正确的准备)。 我猜你也想知道什么时候可以使用常规查询来提高效率; 硬件总是可以升级。 注意二阶SQL注入( 示例 )。 You should always used prepared statements. That would prevent any chance of SQL injection (provided preparation done right). I'm guessing you also want to know ...相关文章
更多- Windows Phone Emoji
- WINDOWS渗透与提权总结(2)
- Hadoop在Windows环境下的部署
- windows下使用solr--安装
- solr部署(windows)
- 基于windows环境部署Elasticseach
- windows系统安装MongoDB
- Windows XP/Vista/Windows 7常见蓝屏故障分析
- vultr vps挂载windows需要的Windows2003 ISO系统下载
- 《Windows 7安全指南》扫描版[PDF]
最新问答
更多- 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
- 如何通过引用返回对象?(How is returning an object by reference possible?)
- 矩阵如何存储在内存中?(How are matrices stored in memory?)
- 每个请求的Java新会话?(Java New Session For Each Request?)
- css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
- 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
- xcode语法颜色编码解释?(xcode syntax color coding explained?)
- 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
- 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
- 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
- 西安哪有PLC可控制编程的培训
- 在Entity Framework中选择基类(Select base class in Entity Framework)
- 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
- 电脑二级VF有什么用
- Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
- 金华英语角.
- 手机软件如何制作
- 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
- 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
- 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
- Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
- 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
- python的访问器方法有哪些
- DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
- 在Ruby中对组合进行排序(Sorting a combination in Ruby)
- 网站开发的流程?
- 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
- 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
- 透明度错误IE11(Transparency bug IE11)
- linux的基本操作命令。。。