php中mysql的使用 PHP中MySQL的使用

2021-10-18 16:00:02 字數 3636 閱讀 9575

連線到mysql:

mysql_connect():

$dbc=mysql_connect($host,$user,$password);

選擇當前資料庫:

mysql_select_db($database_name);

mysql_select_db('$database_name',$conn);

eg:<?phpdefine ('db_user','root');define('db_pwd','mysql');define('db_host','localhost');define('db_name','content');$dbc=@mysql_connect(db_host,db_user,db_pwd) ordie('could not connect to mysql:'.mysql_error());

@mysql_select_db(db_name) ordie('could not select the database:'.mysql_error());?>

如果函式不能返回有效的資源鏈結,則會執行or die(), die()函式會終止指令碼的執行。

執行簡單的查詢:

$result=mysql_query($query);

對於像insert、update、delete等簡單的查詢,它們不會返回記錄,$result變數將會返回true或false,這取決於查詢是否執行成功。對於確實會返回記錄的複雜查詢(select、show、describe和explain),如果查詢有效,則$result變數將是乙個指向查詢結果的資源鏈結;如果查詢無效,則$result變數將為false。

1 2 <?php3 $page_title='register';4 include('noname1.php');5 if(!empty($_post['submit']))6 9 if(empty($_post['name']))10 13 else14 17 18 if(empty($_post['email']))19 22 else23 26 27 if(!isset($_post['gender']))28 31 else32 35 36 /*if(!empty($post['comments']))37 40 else41 */44 if(empty($errors))45 65 echo'please try again!';66 }67 ?>68

mysql_close();//php會在指令碼的末尾自動關閉連線,所以這不是必須的。

檢索查詢結果

格式:mysql_fetch_row(result);

說明:mysql_fetch_row用來查詢結果的一行儲存至陣列,該陣列下標從0開始,每乙個陣列元素對應

乙個域。通過迴圈,可以將查詢結果全部獲得。

格式:1 mysql_fetch_array(result);

說明:mysql_fetch_array和mysql_fetch_row功能基本相同,只不過它除了可以用從0開始的偏移量作

索引,還可以用網域名稱作索引。

值返回下一行的所有域值,並將其儲存至乙個陣列中,沒有行時返回false。

mysql_query("set name 'gbk'")

//使用gbk中文編碼

處理select查詢結果的主要工具是mysql_fetch_array(),它帶有乙個查詢結果變數($result),並以陣列格式一次返回一行資料。

從查詢讀取每條記錄:

while($row=mysql_fetch_array($result))

mysql_fetch_array()函式還帶有乙個可選項,用於指定返回的陣列的型別:聯合陣列、索引陣列,或則兩者。聯合陣列允許通過名稱引用列值,而索引陣列則要求只使用數字,他們如下表:

常量示例

mysql_assoc

$row['column']

mysql_num

$row[0](速度稍快)

mysql_both

$row[0]或$row['column'](預設)

釋放查詢資訊:

mysql_free_result($result);

這一步不是必需的,因為php將在指令碼末尾自動釋放資源。

eg:1 <?php2 require_once('connectdb.php');3 $query="select concat(url,',',title) as name ,url_id as id from urls";4 $result=@mysql_query($query);5 if($result)6 23 mysql_close();24 25 ?>

執行結果為:

技巧總結

mysql_fetch_array()函式與mysql_fetch($result,mysql_num)函式等價

mysql_fetch_assoc()函式與mysql_fetch_array($result,mysql_assoc)函式等價

必需使用mysql_query()執行查詢,然後使用mysql_fetch_array()來檢索單行資訊,如果要檢索多行,則可使用while迴圈(而不要使用for或foreach迴圈)。

確保sql安全

關於php的資料庫安全可歸納為兩大類問題:

1.保護資料庫訪問資訊

2.在執行查詢時要小心。

使用特定的

mysql_real_escape_string()

函式,轉義那些有可能有問題的字元來清理資料:

$data=mysql_real_escape_string($data,$dbc);

這個函式與addslashes()一樣。它更特定於資料庫。

使用ini_get()函式測試magic quotes狀態,這個函式將為特定的選項返回php的配置檔案中的配置。如果ini_get()函式返回true,就說明開啟了magic quotes——則將在應用mysql_real_escape_string()之前,去除所有的斜槓。

在php的當前版本中,magic quotes預設是關閉的,因此ini_get()將返回false,並且不需要去除任何現有的斜槓。

如果magic quotes是開啟的情況下,它會自動在需要轉義的字元前加上「\」,而我們向資料庫中寫入的時候這往往會引起錯誤,所以需要使用stripslashes($string)把那些\去掉。然後再呼叫mysql_real_escape_string()函式。

eg:1 functionescape_data($data)2 8 retrunmysql_real_escape_string(trim($data),$dbc);9 }

技巧總結

mysql_real_escape_string()函式一招所用的語言對字串進行轉義

mysql_real_escape_string()函式需要乙個資料庫連線。

get_magic_quotes_gpc()函式也可用於返回當前的magic quotes設定。

ini_get()可用於獲取許多不同的php.ini設定的內容,不只是magic quotes的設定。

統計返回的記錄

mysql_num_rows(),返回select查詢索引的行數,並取查詢的結果作為乙個引數。

eg:$num=mysql_num_rows($result);

其他常用mysql函式介紹

mysql_insert_id

傳回最後一次使用insert指令的id。

mysql_tablename

取得資料庫名稱

php中mysql函式 php中mysql有關函式

1.mysql query 一般是用來查詢資料裡面的資料。如 username post name sql select from members where login name username result mysql query sql 以上程式是檢測資料庫中是否存在表單傳送過來的使用者名稱...

php中mysql函式 PHP中的MySQL函式

本篇主要介紹採用php語言如何連線mysql資料庫。首先需要檢測服務mysql是否開啟成功。檢視phpinfo 函式 使用php運算元據庫的步驟 一 連線資料庫伺服器 二 選擇資料庫 mysql select db 資料庫名 三 設定編碼格式 mysql set charset utf 8 四 資料...

使用PHP鏈結MySQL

一 使用php查詢mysql資料庫 1.通過php來訪問mysql的步驟是 連線到mysql 選擇操作的資料庫 建立查詢的字段 執行查詢的語句 檢索出結果並在網頁上顯示 斷開與mysql的連線 我們將依次完成這些操作,重要的是首先以安全的方式建立登陸的詳細資料,以使的別人不容易訪問你的資料庫。2.建...