從前天開始,我的電腦不知道怎麼了,寫程序的時候無緣無故就死機。還不是徹底死,鼠標還能動,就是點擊不好使,也打不開任務管理器。昨晚檢查一下硬盤,有六個壞道,也不知道是不是這個原因。但是我在玩的時候,只要不打開編譯器寫程序,啥事也沒有。玩游戲也不回出現那種情況。把我搞得好煩。
MySQLi擴展庫在基礎操作上看著沒什麼不同,只是從面面向過程轉換成了面向對象。但是既然是mysql擴展庫的增強,那一定有強的地方。有如下代碼:
connect_error){ // die($mysqli->connect_error); //} //$sqls = insert into user(name,phone,address)values('張飛',18899992222,'中國');; //$sqls .= insert into user(name,phone,address)values('黃飛鴻',18899991111,'中國');; //$sqls .= insert into user(name,phone,address)values('王剛',18899993333,'中國');; //$res = $mysqli->multi_query($sqls); //if(!$res){ // echo 執行失敗; //}else{ // echo ok; //} //$mysqli->close(); //批量執行dml語句的時候可以混合使用:insert delete update語句,但是最好不要插入select語句 //批量執行dql語句(select) //1.打開mysqli對象 $mysqli=new MySQLi(localhost,root,root,test); //2.批量查詢 $sqls = select * from mr_user;; $sqls.=select * from user;; //$sqls.=desc user;//顯示表的結構 //3.處理結果 //如果成功,則至少有一個結果集 if($res=$mysqli->multi_query($sqls)){ do{ //從mysqli連接取出第一個結果集 $result = $mysqli->store_result(); //顯示mysqli result對象 while($row=$result->fetch_row()){ foreach($row as $key=>$val){ echo $val--; } echo ; } //使用完第一個結果集後應該及時釋放資源 $result->free(); if(!$mysqli->more_results()){ break; } echo **************新的結果集************ ; }while($mysqli->next_result()); } //4.關閉資源 ?>上面用到的數據庫是我自己另建的。
prepare($sql); //綁定參數 $name = array(小倩,小白,小黑); $phone = array(18833332222,18744446666,18899992222); $address = array(古代,古代,現代); //參數綁定---->給?賦值 //這裡類型和順序都要對應 for($i=0;$i<3;$i++){ $mysqli_stmt->bind_param(sss,$name[$i],$phone[$i],$address[$i]);//這裡三個s是代表數據類型是字符串類型 //執行語句 $b = $mysqli_stmt->execute(); } if(!$b){ die(操作失敗.$mysqli_stmt->error); }else{ echo 操作成功; } //釋放資源 $mysqli->close(); ?> 8的用戶的id,name ,address //1.創建一個mysqli對象 $mysqli = new MySQLi(localhost,root,root,test); //2.創建預編譯對象 $sql = select id,name,address from user where id>?; $mysqli_stmt = $mysqli->prepare($sql); $i=8; //綁定參數 $mysqli_stmt->bind_param(i,$i); //由於這次有返回對象了,所以需要綁定結果集 $mysqli_stmt->bind_result($id,$name,$address); //執行 $mysqli_stmt->execute(); //取出綁定的結果集 while($mysqli_stmt->fetch()){ echo --$id--$name--$address--; } //如果想再執行一次類似上面的只是$i改變的查詢,那麼就無須綁定結果集 //釋放資源 $mysqli_stmt->free_result(); //關閉預編譯指令 $mysqli_stmt->close(); //關閉連接 $mysqli->close(); ?>
connect_error){ die($mysqli->connect_error); } //將提交設為false $mysqli->autocommit(false);//打開或關閉本次數據庫連接的自動命令提交事務模式 ,這裡設置不要自動提交(false) //這裡相當於做了一個透明的保存點。會把當前情況記錄下來。 $sql1 = update account set balance=balance+100 where id = 1; $sql2 = update account set balance=balance-100 where id = 2; $res1 = $mysqli->query($sql1); $res2 = $mysqli->query($sql2); if(!$res1||!$res2){ //回滾事務 $mysqli->rollback();//回滾到保存點 echo fail; }else{ //提交 $mysqli->commit(); //這裡是真正的提交,一旦提交沒有機會回滾。 echo success; } ?>