php中的資料庫查詢操作
相關mysql影片教學推薦:《mysql教學》
# * 3. 查詢步驟:
* 3-1.連接資料庫
* 3-2.準備SQL語句
* 3-3.執行查詢
* 3-4.偵測結果
* 3-5.如果是select,則回傳結果集
* 3-5-1.如果是insert/update /delete:則傳回受影響的記錄數量
* 3-6.關閉資料庫連線
//1.連接資料庫,require 不是函數,後面不用加括號
define ('DB_HOST', 'localhost'); define ('DB_USER', 'root'); define ('DB_PASS', 'root'); define ('DB_NAME', 'php'); define ('DB_CHAR', 'utf8'); $db = @mysqli_connect(DB_HOST, DB_USER, DB_PASS); if (mysqli_connect_errno($db)) { exit('连接失败'.mysqli_connect_error($db)); } mysqli_select_db($db, DB_NAME); mysqli_set_charset($db, DB_CHAR);
//2.準備SQL語句
$sql = "SELECT name,salary FROM staff"; $sql = "SELECT name AS 姓名,salary AS 工资 FROM staff WHERE age>90";
//3.執行查詢:成功會傳回結果集物件,失敗回傳false
$result = mysqli_query($db, $sql); var_dump($result);die();
//4.偵測結果
#//如果結果集存在
if (false != $result) { //这是写只是语义性更强 //如果结果集中存在记录,至少有一条 // if (mysqli_num_rows($result) > 0) { //mysqli_affected_rows($db)也可以完成同样的检测工作,注意参数是连接对象$db,不是结果集对象 if (mysqli_affected_rows($db) > 0) { // echo '共计:'.mysqli_num_rows($result).'条记录<br>'; echo '共计:'.mysqli_affected_rows($db).'条记录~~<br>';
//5.處理結果集
//5-1:取得索引部分
while($row = mysqli_fetch_array($result, MYSQLI_NUM)){
//取得索引部分的快速方法
while($row = mysqli_fetch_row($result)){
//5-2:取得關聯部分
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
//取得關聯部分的快速方法
while($row = mysqli_fetch_assoc($result)){
//5-3:索引關聯
while($row = mysqli_fetch_array($result, MYSQLI_BOTH)){
//5-4: 取得索引關聯的快速方法就是不傳入第二個參數,也就是預設值
while($row = mysqli_fetch_array($result)){
//5-4:以物件的方式
while($row = mysqli_fetch_object($result)){ // var_export($row);//以字符串方式表示查询结查 //如果是对象,可以用指向符来访问 echo $row->name.'--'.$row->salary; echo '<hr>'; //以变量方式表示,表示的内容更加完整丰富 // var_dump($row); } } else { echo '没有符合条件的记录'; } //查询失败的处理方式 } else { //必须要用exit()或die()终止脚本执行,否则后面的语句还会执行并会报错 exit('查询失败'.mysqli_errno($db).':'.mysqli_error($db)); }
//5.釋放結果集(僅針對select)
mysqli_free_result($result);###//6.關閉資料庫連線###
mysqli_close($db);### ###