最近很多小伙伴都在问php–如何检索用PDO删除的行数?和php删除记录这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展c#–TFS2010:如何检索已删除的文件?、java–如何
最近很多小伙伴都在问php – 如何检索用PDO删除的行数?和php删除记录这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展c# – TFS 2010:如何检索已删除的文件?、java – 如何计算JTextArea中的行数,包括由包装引起的行数?、PDO 的行数、PDO的行数等相关知识,下面开始了哦!
本文目录一览:- php – 如何检索用PDO删除的行数?(php删除记录)
- c# – TFS 2010:如何检索已删除的文件?
- java – 如何计算JTextArea中的行数,包括由包装引起的行数?
- PDO 的行数
- PDO的行数
php – 如何检索用PDO删除的行数?(php删除记录)
/** * A pretty straight-forward query to delete a row from the verification * table where user_id is $user_id and code is $code */ $result = $this->database->query("DELETE FROM verification " . "WHERE user_id = %u AND code = %s",$user_id,$code); /** * This function will grab the PDO's exec() return,which should * return the number of rows modified. */ if($this->database->getNumAffected($result) > 0) return true; else return false;
问题是,DELETE查询是否实际删除了一行,$this-> database-> getNumAffected($result)始终返回’0′.
你可以查看包装器,但基本上$this-> database-> getNumAffected($result)只返回PDO :: exec()返回的完全相同的值.
我尝试了没有包装器的代码(直接进入PDO),我遇到了同样的问题,但反过来了:它总是返回’1′(是否删除了一行.)
任何帮助将不胜感激.
编辑:基于this问题,我正在做的一切……我不明白为什么这不起作用.
502 $statement = $this -> getDatabaseConnection () -> prepare ( $query ); ... 587 $ret = array ( $statement,func_get_args (),$lastIndex ); 588 589 return ( $ret );
因此,假设您的$this-> database-> query()正在调用此数据库类的查询方法,您应该能够执行$result [0] – > rowCount().
请注意,您对早期响应的断言“由于rowCount()函数存在的错误而导致[您正在使用的包装器使用不同版本的rowCount()”不正确 – 包装器实现了numRows,但是这与PDOStatement::rowCount()不同,它在database :: query()返回的语句句柄内是完整的.
c# – TFS 2010:如何检索已删除的文件?
我将一个Visual Studio 2010项目检入TFS.我在本地删除了一个文件(.edmx).现在,我想要检索该文件.
解决方法
编辑
也许这个链接可以帮助你:
How to retrieve a deleted file in TFS
java – 如何计算JTextArea中的行数,包括由包装引起的行数?
为了做到这一点,我计划使用…来计算字体的高度
Font font = jTextArea.getFont(); FontMetrics fontMetrics = jTextArea.getFontMetrics(font); int lineHeight = fontMetrics.getAscent() + fontMetrics.getDescent();
…然后将其乘以JTextArea中使用的行数.问题是JTextArea.getLineCount()计算忽略包装线的行返回数.
如何计算JTextArea中使用的行数,包括由word wrap引起的行数?
这里有一些演示代码让这个问题变得更容易.我有一个监听器,每次窗口调整大小时打印出行数.目前,它总是打印1,但是我想要补偿单词包装,并打印出实际使用了多少行.
编辑:我在下面的代码中包含了问题的解决方案.静态countLines方法给出了解决方案.
package components; import java.awt.*; import java.awt.event.*; import java.awt.font.*; import java.text.*; import javax.swing.*; public class JTextAreaLineCountDemo extends JPanel { JTextArea textArea; public JTextAreaLineCountDemo() { super(new GridBagLayout()); String inputStr = "Lorem ipsum dolor sit amet,consectetur adipisicing elit,sed do eiusmo"; textArea = new JTextArea(inputStr); textArea.setEditable(false); textArea.setLineWrap(true); textArea.setWrapStyleWord(true); // Add Components to this panel. GridBagConstraints c = new GridBagConstraints(); c.gridwidth = GridBagConstraints.REMAINDER; c.fill = GridBagConstraints.BOTH; c.weightx = 1.0; c.weighty = 1.0; add(textArea,c); addComponentListener(new ComponentAdapter() { @Override public void componentResized(ComponentEvent ce) { System.out.println("Line count: " + countLines(textArea)); } }); } private static int countLines(JTextArea textArea) { AttributedString text = new AttributedString(textArea.getText()); FontRenderContext frc = textArea.getFontMetrics(textArea.getFont()) .getFontRenderContext(); AttributedCharacterIterator charIt = text.getIterator(); LineBreakMeasurer lineMeasurer = new LineBreakMeasurer(charIt,frc); float formatWidth = (float) textArea.getSize().width; lineMeasurer.setPosition(charIt.getBeginIndex()); int noLines = 0; while (lineMeasurer.getPosition() < charIt.getEndindex()) { lineMeasurer.nextLayout(formatWidth); noLines++; } return noLines; } private static void createAndShowGUI() { JFrame frame = new JFrame("JTextAreaLineCountDemo"); frame.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE); frame.add(new JTextAreaLineCountDemo()); frame.pack(); frame.setVisible(true); } public static void main(String[] args) { javax.swing.SwingUtilities.invokelater(new Runnable() { public void run() { createAndShowGUI(); } }); } }
解决方法
LineBreakMeasurer
类.
The LineBreakMeasurer class allows styled text to be broken into lines (or segments) that fit within a particular visual advance. This is useful for clients who wish to display a paragraph of text that fits within a specific width,called the wrapping width.LineBreakMeasurer implements the most commonly used line-breaking policy: Every word that fits within the wrapping width is placed on the line. If the first word does not fit,then all of the characters that fit within the wrapping width are placed on the line. At least one character is placed on each line.
PDO 的行数
周围有许多相互矛盾的说法。在 PHP 中使用 PDO 获取行数的最佳方法是什么?在使用 PDO 之前,我只是简单地使用了mysql_num_rows
.
fetchAll
是我不想要的东西,因为我有时可能会处理大型数据集,所以不适合我的使用。
你有什么建议吗?
PDO的行数
周围有许多矛盾的说法。在PHP中使用PDO进行行计数的最佳方法是什么?在使用PDO之前,我只是简单地使用mysql_num_rows
。
fetchAll
是我不想要的东西,因为有时我可能要处理大型数据集,因此对我的使用不利。
你有什么建议吗?
答案1
小编典典$sql = "SELECT count(*) FROM `table` WHERE foo = bar"; $result = $con->prepare($sql); $result->execute(); $number_of_rows = $result->fetchColumn();
这不是最优雅的方式,而且还涉及额外的查询。
PDO有PDOStatement::rowCount()
,这显然也 没有 在MySQL的工作。真痛苦
从PDO文档中:
对于大多数数据库,PDOStatement :: rowCount()不会返回受SELECT语句影响的行数。而是使用PDO ::
query()发出与所要SELECT语句相同的谓词的SELECT COUNT(*)语句,然后使用PDOStatement ::
fetchColumn()检索将返回的行数。然后,您的应用程序可以执行正确的操作。
编辑:上面的代码示例使用一个准备好的语句,在许多情况下,出于计数行的目的,可能是不必要的,因此:
$nRows = $pdo->query(''select count(*) from blah'')->fetchColumn(); echo $nRows;
我们今天的关于php – 如何检索用PDO删除的行数?和php删除记录的分享就到这里,谢谢您的阅读,如果想了解更多关于c# – TFS 2010:如何检索已删除的文件?、java – 如何计算JTextArea中的行数,包括由包装引起的行数?、PDO 的行数、PDO的行数的相关信息,可以在本站进行搜索。
本文标签: