如何透過SQL聚合函數來獲得增刪改的受影響行數?
再做進一步動作前就能夠計算出一個查詢返回或影響的行數通常都非常有用,希望分頁顯示結果或產生統計資料時,這種功能特別方便,那麼取得受影響行數的功能是如何實現的呢?
一、透過SQL聚合函數COUNT統計下旬結果記錄數
#COUNT 傳回一個查詢或部分查詢的行數,通常和DINSTINCT一起使用。 SQL的聚合函數COUNT 被多種資料庫廣泛支援!
二、透過PDOStatement->rowCount()方法傳回受影響行數
PDOStatement->rowCount()方法取得到有多少行數被UPDATE , INSERT 或DELECTE查詢所影響。 rowCount()方法在典型的 PHP應用程式中並不常見,但是它可以統計出在呼叫PDOStatement->execute後,有多少行受到影響。
三、應用程式實例
透過SQL 聚合函數COUNT統計查詢傳回的記錄數,其具體程式碼如下:
<form action="5.php" name="form1" method="post"> 查询关键字:<input type="text" name="username" id="nr"> <input type="submit" name="Submit" value="查询"> </form> <?php header("Content-Type:text/html; charset=utf-8"); //设置页面的编码格式 if(isset($_POST['Submit']) && $_POST['Submit']=="查询") { $dbms = "mysql"; // 数据库的类型 $dbName ="php_cn"; //使用的数据库名称 $user = "root"; //使用的数据库用户名 $pwd = "root"; //使用的数据库密码 $host = "localhost"; //使用的主机名称 $dsn = "$dbms:host=$host;dbname=$dbName"; try { $dbh = new PDO($dsn, $user, $pwd);//初始化一个PDO对象,就是创建了数据库连接对象$pdo $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "SELECT COUNT(*) FROM user WHERE username = :id";//需要执行的sql语句 $stmt = $dbh->prepare($sql);//准备查询语句 $stmt->bindParam(':id', $_POST['nr'], PDO::PARAM_STR); //执行查询语句,并返回结果集 $result = $stmt->execute(); echo 'There are',$stmt->fetchColumn(),'rows returned.'; }catch (PDOException $e){ echo 'PDO Exception Caught.'; echo 'Error with the database:<br>'; echo 'SQL Query:',$sql; echo 'Error:'.$e->getMessage(); } } ?>
執行本實例,在文字方塊中輸入要查詢的資料庫名稱,按一下「查詢」按鈕,即可顯示出所查詢到的結果行數,如下圖:
說明:
在使用UPDATE 和DELETE語句時,請務必隨時確定新增了WHERE子句,如果未新增WHERE子句,則可能會更新資料庫中的所有欄位或刪除表中的所有數據,無論哪一種情況都不是使用者所希望看到的。
以上是如何透過SQL聚合函數獲得增刪改的受影響行數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!