1.最大執行時間問題,解決方法:分批處理邏輯,比如用ID大小分批處理
10余年建站經驗, 網站建設、網站設計客戶的見證與正確選擇。成都創新互聯提供完善的營銷型網頁建站明細報價表。后期開發更加便捷高效,我們致力于追求更美、更快、更規范。
2.多字段組合不可重復的設定,解決方法:查看表設計結構,看看有沒有此項設定
3.去掉執行語句1,只運行語句2.
這兩個函數功能完全不同:
mysql_affected_rows 取得前一次 MySQL 操作所影響的記錄行數,操作是指INSERT、UPDATE、DELETE等,影響是指修改、變化的。如果函數失敗,返回值是-1。此函數參數為連接ID,也可以不要參數(當前默認的連接)。
mysql_num_rows()返回結果集中行的數目,僅對 SELECT 語句有效。注意其參數是mysql_query返回的結果集ID。
定義和用法mysql_affected_rows() 函數返回前一次 MySQL 操作所影響的記錄行數。
語法mysql_affected_rows(link_identifier)
參數:
描述link_identifier
必需:
MySQL 的連接標識符。如果沒有指定,默認使用最后被 mysql_connect() 打開的連接。如果沒有找到該連接,函數會嘗試調用 mysql_connect() 建立連接并使用它。如果發生意外,沒有找到連接或無法建立連接,系統發出 E_WARNING 級別的警告信息。
說明:
取得最近一次與 link_identifier 關聯的 INSERT,UPDATE 或 DELETE 查詢所影響的記錄行數。
返回值:
執行成功,則返回受影響的行的數目,如果最近一次查詢失敗的話,函數返回 -1。
如果最近一次操作是沒有任何條件(WHERE)的 DELETE 查詢,在表中所有的記錄都會被刪除,但本函數返回值在 4.1.2 版之前都為 0。
當使用 UPDATE 查詢,MySQL 不會將原值與新值一樣的列更新。這樣使得 mysql_affected_rows() 函數返回值不一定就是查詢條件所符合的記錄數,只有真正被修改的記錄數才會被返回。
REPLACE 語句首先刪除具有相同主鍵的記錄,然后插入一個新記錄。該函數返回的是被刪除的記錄數加上被插入的記錄數。
例子
?php
$con = mysql_connect("localhost","mysql_user","mysql_pwd");
if (!$con)
{
die("Could not connect: " . mysql_error());
}
mysql_select_db("mydb");
mysql_query("DELETE FROM mytable WHERE id 5");
$rc = mysql_affected_rows();
echo "Records deleted: " . $rc;
mysql_close($con);
?
輸出:Records deleted: 4
主要是三條語句:
1、聲明一個PDO對象:
$conn = new PDO("");
2、運用exec函數:
$sql="DELETE FROM fruit WHERE colour = 'red'";
sql語句不能是select操作,select操作用這個函數不會返回結果
$count = $conn-exec($sql);
3、輸出結果:
print("Deleted $count rows.\n");
mysql_affected_rows() 返回最近一次與 連接句柄 關聯的 INSERT,UPDATE 或 DELETE 查詢所影響的記錄行數.FOUND_ROWS() : select ROW_COUNT() : update delete insert.
FOUND_ROWS() : select
ROW_COUNT() : update delete insert.
MySQL的函數中,SELECT是另外一個單獨的函數 FOUND_ROWS() , UPDATE等是 ROW_COUNT()
如下案例:
mysql INSERT INTO t VALUES(1),(2),(3); Query OK, 3 rows affected (0.00 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql SELECT ROW_COUNT(); +-------------+ | ROW_COUNT() | +-------------+ | 3 | +-------------+ 1 row in set (0.00 sec)
mysql_affected_rows
(PHP 3, PHP 4 , PHP 5)
mysql_affected_rows -- 取得前一次 MySQL 操作所影響的記錄行數說明
int mysql_affected_rows ( [resource link_identifier])
mysql_affected_rows() 返回最近一次與 連接句柄 關聯的 INSERT,UPDATE 或 DELETE 查詢所影響的記錄行數。如果連接句柄沒有指定, 則默認使用最近一次由 mysql_connect() 函數打開的連接句柄。
注: 如果你使用事務處理(transactions),你需要在 INSERT,UPDATE 或 DELETE 查詢后調用 mysql_affected_rows() 函數,而不是在 commit 命令之后。
如果最近一次操作是沒有任何條件(WHERE)的 DELETE 查詢, 在表中所有的記錄都會被刪除,但該函數返回值為 0。
注: 當使用 UPDATE 查詢,MySQL 不會將原值和新值一樣的列更新。 這樣使得 mysql_affected_rows() 函數返回值不一定就是查詢條件所符合的記錄數。 只有真正被修改的記錄數才會被返回。
mysql_affected_rows() 函數不適用于 SELECT 語句;只適用于能夠修改記錄的語句中。請使用 mysql_num_rows() 函數來獲得 SELECT 所返回的記錄行數。
如果最近一次查詢失敗的話,函數返回 -1。 例子 1. Delete 操作
?php /* 連接數據庫 */ mysql_pconnect("localhost", "mysql_user", "mysql_password") or die ("Could not connect" . mysql_error()); mysql_select_db("mydb"); /* 這會返回有效的被刪除記錄數。 */ mysql_query("DELETE FROM mytable WHERE id 10"); printf ("Records deleted: %d/n", mysql_affected_rows()); /* 沒有任何條件(where)的刪除語句,返回 0 */ mysql_query("DELETE FROM mytable"); printf ("Records deleted: %d/n", mysql_affected_rows()); ?
以上的例子會得出下面的運行結果:
Records deleted: 10Records deleted: 0
例子 2. Update 操作
?php /* 連接數據庫 */ mysql_pconnect("localhost", "mysql_user", "mysql_password") or die ("Could not connect" . mysql_error()); mysql_select_db("mydb"); /* Update 記錄 */ mysql_query("UPDATE mytable SET used=1 WHERE id 10"); printf ("Updated records: %d/n", mysql_affected_rows()); mysql_query("COMMIT"); ?
以上的例子會得出下面的運行結果:
Updated Records: 10
參見 mysql_num_rows() 和 mysql_info()。
mysql_affected_rows() 返回的是對行操作的個數
$query=mysql_query("select * from love_mp3_table ");
mysql_affected_rows();//其實對這個也有效,返回44,在這和mysql_num_rows($query)效果一樣
$query=mysql_query("INSERT INTO table(id,title,hrefurl) VALUE('','節節勝利','http://')");
mysql_affected_rows();//返回1
$query=mysql_query("DELETE FROM tabel WHERE id=45");
mysql_affected_rows();//返回1
$query=mysql_query("UPDATE table SET title='我是' WHERE id=44");
mysql_affected_rows();//返回1
舉例如下:
創建userinfo_update.php頁面用于查詢用戶信息,先顯示信息,在修改:
先通過GET獲取用戶編號查詢用戶信息:
$sql = "select * from user_info where user_id='".$_GET['userId']."'";
$result = mysql_query($sql,$con);
if($row = mysql_fetch_array($result)){
}
頁面效果:
創建update.php文件,用于修改用戶信息:
使用到了mysql_affected_rows() 函數返回前一次 MySQL 操作所影響的記錄行數。
//通過post獲取頁面提交數據信息
$userId = $_POST[userId];
$userName = $_POST[userName];
$userAge = $_POST[userAge];
$sql = "update user_info set user_name='".$userName."',user_age=".$userAge." where user_id='".$userId."'";
mysql_query($sql,$conn);//執行SQL
$mark? = mysql_affected_rows();//返回影響行數
$url = "userinf_select.php";
運行結果
創建delete.php文件,完成刪除用戶信息功能:
$userId = $_GET['userId'];
include 'connection.php';
$sql = "delete from user_info where user_id='".$userId."'";
mysql_query($sql,$con);
$mark? = mysql_affected_rows();//返回影響行數
if($mark0){
echo "刪除成功";
}else{
echo? "刪除失敗";
}
mysql_close($con);
運行結果:
分享文章:php查詢數據庫影響行數 php查詢數據庫影響行數和列數
標題鏈接:http://m.kartarina.com/article42/dodshhc.html
成都網站建設公司_創新互聯,為您提供品牌網站制作、云服務器、外貿建站、App開發、網站導航、網站營銷
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯