Heim > php教程 > php手册 > Front-End-Lernen der PHP-MySQL-Erweiterungsfunktion

Front-End-Lernen der PHP-MySQL-Erweiterungsfunktion

PHP中文网
Freigeben: 2016-12-05 13:26:27
Original
1535 Leute haben es durchsucht

×

Verzeichnis

[1]Mit Datenbank verbinden[2]Datenbank verwenden[3]SQL-Abfrage ausführen[4]Operationsergebnissatz[5] Enge Verbindung


Vorherige Wörter

MySQL wird aufgrund seiner geringen Größe, hohen Geschwindigkeit und niedrigen Gesamtbetriebskosten von vielen kleinen und mittleren Unternehmen verwendet , insbesondere aufgrund des Open-Source-Charakters, wählte die Website MySQL als Website-Datenbank, um die Gesamtkosten für den Betrieb der Website zu senken. Datenbanksystemlösungen, die das MySQL-Datenbankverwaltungssystem mit der PHP-Skriptsprache kombinieren, werden von immer mehr Websites übernommen, wobei der LAMP-Modus (Linux+Apche+MySQL+php) der beliebteste ist

PHP hat Standardfunktionen für den Betrieb von Datenbanken werden in PHP5 neu hinzugefügt und stellen eine Verbesserung gegenüber der MySQL-Erweiterung dar. Aufgrund historischer Probleme wurden jedoch viele alte Projekte mit der MySQL-Erweiterung in PHP4 entwickelt. Wenn eine Sekundärentwicklung für das ursprüngliche Projekt durchgeführt wird, ist die Verwendung von MySQL-Erweiterungsfunktionen erforderlich. Wenn es sich um ein neu entworfenes Projekt handelt, wird die Verwendung der MySQLi-Erweiterung oder der PDO-Technologie empfohlen. In diesem Artikel wird hauptsächlich die MySQL-Erweiterungsfunktion in PHP vorgestellt.

Übersicht

Mehrere Schritte zum Betreiben der MySQL-Datenbank im PHP-Skript sind wie folgt:

1. Stellen Sie eine Verbindung zur MySQL-Datenbank her Server und stellen Sie fest, ob die Verbindung korrekt ist

2. Wählen Sie die Datenbank aus und legen Sie den Zeichensatz fest (optional)

3. Führen Sie den SQL-Befehl aus

4. Verarbeiten Sie die Ergebnismenge

 5. Schließen Sie die Datenbankverbindung

Schritt 1: Stellen Sie eine Verbindung zum MySQL-Datenbankserver her und ermitteln Sie, ob die Verbindung korrekt ist

mysql_connect()

mysql_connect()-Funktion Wird verwendet, um eine Verbindung zum MySQL-Server herzustellen. Gibt bei Erfolg eine Ressource oder bei Fehler FALSE zurück 🎜>

 
Die Funktion mysql_errno() wird verwendet, um den numerischen Code der Fehlermeldung im vorherigen MySQL-Vorgang zurückzugeben

resource mysql_connect ([ string $server [, string $username [, string 
$password [, bool $new_link [, int $client_flags ]]]]] )
Nach dem Login kopieren


mysql_error()

Die Funktion mysql_error() wird verwendet, um die von der generierte Textfehlermeldung zurückzugeben vorheriger MySQL-Vorgang. Wenn die Verbindungsressourcennummer nicht angegeben ist, wird die zuletzt erfolgreich geöffnete Verbindung verwendet, um Fehlerinformationen vom MySQL-Server zu extrahieren


int mysql_errno ([ resource $link_identifier ] )
Nach dem Login kopieren


Schritt 2: Wählen Sie die Datenbank aus und legen Sie den Zeichensatz fest (optional)


Normalerweise wird die Arbeit zur Datenbankerstellung zunächst vom Datenbankadministrator (DBA) festgelegt. und dann von PHP-Programmierern in Skripten verwendet. Erstellen Sie beispielsweise eine Datenbank mit dem Namen bookstore

string mysql_error ([ resource $link_identifier ] )
Nach dem Login kopieren


, nachdem Sie mithilfe eines PHP-Skripts eine Verbindung mit dem MySQL-Server hergestellt haben, um zu vermeiden, dass bei jeder MySQL-Erweiterung die Zieldatenbank angegeben wird Funktion von PHP aufgerufen wird, verwenden Sie am besten zunächst die Funktion mysql_select_db(), um eine Standarddatenbank für nachfolgende Vorgänge auszuwählen. Diese Funktion hat eine ähnliche Funktion wie der SQL-Befehl „USE bookstore“


mysql_select_db ()
<?php$link = mysql_connect(&#39;localhost&#39;,&#39;root&#39;,&#39;123456&#39;);
var_dump($link);//resource(3, mysql link)if(!$link){die(&#39;连接失败:&#39;.mysql_error());
}?>
Nach dem Login kopieren

mysql_select_db Die Funktion () wird verwendet, um die MySQL-Datenbank

auszuwählen

Schritt 3: Führen Sie den SQL-Befehl aus


Erstellen Sie zunächst eine Buchdatentabelle in der Buchhandlungsdatenbank

bool mysql_select_db ( string $database_name [, resource $ link_identifier ] )
Nach dem Login kopieren



<?php$link = mysql_connect(&#39;localhost&#39;,&#39;root&#39;,&#39;zhiaihebe0123&#39;);
var_dump($link);//resource(3, mysql link)if(!$link){die(&#39;连接失败:&#39;.mysql_error());
}mysql_select_db(&#39;bookstore&#39;,$link) or die(&#39;不能选定数据库bookstore:&#39; .mysql_error());
mysql_query(&#39;set names utf8&#39;);//设置字符集(一般不常用)?>
Nach dem Login kopieren

Solange Sie in PHP den SQL-Befehl als Zeichenfolge an die Funktion mysql_query() übergeben, wird er an MYSQL gesendet Server und ausgeführt


mysql_query()

CREATE TABLE books(
    id INT NOT NULL AUTO_INCREMENT,bookname VARCHAR(80) NOT NULL DEFAULT '',publisher 
    VARCHAR(60) NOT NULL DEFAULT '',author VARCHAR(20) NOT NULL DEFAULT '',price
     DOUBLE(5,2) NOT NULL DEFAULT 0.00,ptime INT NOT NULL DEFAULT 0,
     pic CHAR(24) NOT NULL DEFAULT '',detail TEXT,PRIMARY KEY(id));
));
Nach dem Login kopieren

Die Funktion mysql_query() wird zum Senden einer MySQL-Abfrage verwendet. mysql_query() gibt nur eine Ressource für SELECT-, SHOW-, DESCRIBE-, EXPLAIN- und andere Anweisungen zurück und gibt FALSE zurück, wenn in der Abfrage ein Fehler für andere Arten von SQL-Anweisungen vorliegt, z. B. INSERT, UPDATE, DELETE, DROP usw. , mysql_query() wird ausgeführt. Gibt bei Erfolg TRUE zurück, bei Fehler FALSE.

Deklarieren Sie die drei einzufügenden INSERT-Anweisungen als eine Zeichenfolge


resource mysql_query ( string $query [, resource $link_identifier = NULL ] )
Nach dem Login kopieren

Verwenden Sie die Funktion mysql_query(), um die INSERT-Anweisung zu senden. Wenn sie erfolgreich ist, gibt sie true zurück, wenn es schlägt fehl, es gibt false zurück


$insert = "insert into books(bookname, publisher, author, price, detail) values
('PHP','电子工业出版社','张三','80.00','PHP相关'),
('ASP','电子工业出版社','李四','90.00','ASP相关'),
('JSP','电子工业出版社','王五','70.00','JSP相关')";
Nach dem Login kopieren


mysql_affected_rows () Holen Sie sich die Anzahl der Datensatzzeilen, die von der vorherigen MySQL-Operation betroffen waren. Wenn die Ausführung erfolgreich ist, wird die Anzahl der betroffenen Zeilen zurückgegeben. Wenn die letzte Abfrage fehlschlägt, gibt die Funktion -1


$result = mysql_query($insert);var_dump($result);
Nach dem Login kopieren


Normalerweise wird festgestellt, ob die Datenoperation erfolgreich ist, indem beurteilt wird, ob der Wert der Funktion mysql_affected_rows() größer als 0 ist

mysql_insert_id()

  mysql_insert_id()函数用来取得上一步 INSERT 操作产生的 ID


int mysql_insert_id ([ resource $link_identifier ] )
Nach dem Login kopieren



<? = "" = (( && () > 0 "数据记录插入成功,最后一条插入的数据记录id为:".()."
" "数据记录插入失败,错误号:".().",错误原因:".()."
"?>
Nach dem Login kopieren


  实际上,最后一个id应该为6,但是由于4、5、6三条语句是同时插入的,这时显示的是第一个id为4

  下面,将id为4的记录的作者修改为小白


 = ("UPDATE books SET author='小白' WHERE id='4'"( && () > 0 "数据记录修改成功
" "数据记录修改失败,错误号:".().",错误原因:".()."
"
Nach dem Login kopieren


  下面,删除作者为李四的记录


 = ("DELETE FROM books WHERE author='李四'"( && () > 0 "数据记录删除成功
" "数据记录删除失败,错误号:".().",错误原因:".()."
"
Nach dem Login kopieren


 

步骤四:处理结果集

  在PHP脚本中执行SELECT查询命令,也是调用mysql_query()函数,但和执行DML不同的是,执行SELECT命令之后,mysql_query()函数的返回值是一个PHP资源的引用指针(结果集)。这个返回值可以在各种结果集处理函数中,对结果数据表的各个字段进行处理

mysql_num_fields()

  mysql_num_fields()函数取得结果集中字段的数目


int mysql_num_fields ( resource $result )
Nach dem Login kopieren


mysql_num_rows()

  mysql_num_rows()函数取得结果集中行的数目


int mysql_num_rows ( resource $result )
Nach dem Login kopieren



$result = mysql_query("SELECT * FROM books");
$rows = mysql_num_rows($result);$cols = mysql_num_fields($result);
var_dump($rows,$cols);//int 4 int 8
Nach dem Login kopieren


  从结果中可以看出,该结果集总共有4行8列

 

  如果需要访问结果集中的数据,可以选用mysql_fetch_row()、mysql_fetch_assoc()、mysql_fetch_array()、mysql_fetch_object()这4个函数中的任意一个

mysql_fetch_row()

  mysql_fetch_row()函数从结果集中取得一行作为枚举数组


array mysql_fetch_row ( resource $result )
Nach dem Login kopieren
Nach dem Login kopieren


  如果需要访问结果集中的数据,可以选用mysql_fetch_row()、mysql_fetch_assoc()、mysql_fetch_array()、mysql_fetch_object()这4个函数中的任意一个

mysql_fetch_row()

  mysql_fetch_row()函数从结果集中取得一行作为枚举数组


array mysql_fetch_row ( resource $result )
Nach dem Login kopieren
Nach dem Login kopieren



$result = mysql_query("SELECT * FROM books");
$row = mysql_fetch_row($result);
//Array ( [0] => 1 [1] => PHP [2] 
=> 电子工业出版社 [3] => 张三 [4] => 80.00 [5] => 0 [6] => [7] => PHP相关 )
print_r($row);$row = mysql_fetch_row($result);
//Array ( [0] => 3 [1] => JSP [2] 
=> 电子工业出版社 [3] => 王五 [4] => 70.00 [5] => 0 [6] => [7] => JSP相关 )
print_r($row);
Nach dem Login kopieren


mysql_fetch_assoc()

  mysql_fetch_assoc()函数从结果集中取得一行作为关联数组


array mysql_fetch_assoc ( resource $result )
Nach dem Login kopieren



$result = mysql_query("SELECT * FROM books");
$assoc = mysql_fetch_assoc($result);
//Array ( [id] => 1 [bookname] => PHP [publisher] => 电子工业出版社 [author] => 
张三 [price] => 80.00 [ptime] => 0 [pic] => [detail] => PHP相关 )
print_r($assoc);
$assoc = mysql_fetch_assoc($result);
//Array ( [id] => 3 [bookname] => JSP [publisher] => 电子工业出版社 [author] => 王五 [price] => 
70.00 [ptime] => 0 [pic] => [detail] => JSP相关 )
print_r($assoc);
Nach dem Login kopieren


mysql_fetch_array()

  mysql_fetch_array()函数从结果集中取得一行作为关联数组,或数字数组,或二者兼有。mysql_fetch_array() 中可选的第二个参数 result_type 是一个常量,可以接受以下值:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH,默认值是 MYSQL_BOTH


array mysql_fetch_array ( resource $result [, int $ result_type ] )
Nach dem Login kopieren



$result = mysql_query("SELECT * FROM books");$array = mysql_fetch_array($result);
//Array ( [0] => 1 [id] => 1 [1] => PHP [bookname] => PHP [2] => 电子工业出版社 [publisher] => 
电子工业出版社 [3] => 张三 [author] => 张三 [4] => 80.00 [price] => 80.00 [5] => 0 
[ptime] => 0 [6] => [pic] => [7] => PHP相关 [detail] => PHP相关 )print_r($array);
$array = mysql_fetch_array($result);
// Array ( [0] => 3 [id] => 3 [1] => JSP [bookname] => JSP [2] => 电子工业出版社 [publisher] =>
 电子工业出版社 [3] => 王五 [author] => 王五 [4] => 70.00 [price] => 70.00 [5] => 0 
 [ptime] => 0 [6] => [pic] => [7] => JSP相关 [detail] => JSP相关 )print_r($array);
Nach dem Login kopieren


mysql_fetch_object()

  mysql_fetch_object()函数从结果集中取得一行作为对象


object mysql_fetch_object ( resource $result )
Nach dem Login kopieren



$result = mysql_query("SELECT * FROM books");$object = mysql_fetch_object($result);
//stdClass Object ( [id] => 1 [bookname] => PHP [publisher] => 电子工业出版社 [author] 
=> 张三 [price] => 80.00 [ptime] => 0 [pic] => [detail] => PHP相关 )print_r($object);
$object = mysql_fetch_object($result);
//stdClass Object ( [id] => 3 [bookname] => JSP [publisher] => 电子工业出版社 [author] => 
王五 [price] => 70.00 [ptime] => 0 [pic] => [detail] => JSP相关 )
print_r($object);
Nach dem Login kopieren


  对于上面的四个函数来说,默认指针都指向第一行记录。在获取一行记录后,指针会自动下移。如果是最后一委,则函数返回false。一般地,mysql_fetch_assoc()这种返回关联数组形式的函数较常用

mysql_data_seek()

  mysql_data_seek()函数可以移动内部结果的指针

  [注意]$row_number从0开始


bool mysql_data_seek ( resource $result , int $row_number )
Nach dem Login kopieren



$result = mysql_query("SELECT * FROM books");
$assoc = mysql_fetch_assoc($result);
mysql_data_seek($result , 2);$assoc = mysql_fetch_assoc($result);
Array ( [id] => 4 [bookname] => PHP [publisher] => 电子工业出版社 [author] => 小白[price]
 =>80.00 [ptime] => 0 [pic] => [detail] => PHP相关 )print_r($assoc);mysql_data_seek($result , 0);
$assoc = mysql_fetch_assoc($result);//Array ( [id] => 1 [bookname] => PHP [publisher] 
=> 电子工业出版社 [author] => 张三 [price] => 80.00 [ptime] => 0 [pic] => [detail] => PHP相关 )
print_r($assoc);
Nach dem Login kopieren


  下面使用while循环和mysql_fetch_assoc()函数将结果集以表格的形式显示出来


table{
    border:1px solid black;
    border-collapse:collapse;
    table-layout:fixed;
}" _ue_custom_node_="true">$result = mysql_query("SELECT id,bookname,publisher,author,price FROM books");
echo '';echo '';echo '编号';echo '书名';echo '出版社';echo '作者';echo '价格';echo '';
while($assoc = mysql_fetch_assoc($result)) {echo '';
echo "{$assoc['id']}";echo "{$assoc['bookname']}";
echo "{$assoc['publisher']}";echo "{$assoc['author']}";
echo "{$assoc['price']}";echo '';
}echo '';
Nach dem Login kopieren


mysql_free_result()

  mysql_free_result()函数用于释放结果内存


bool mysql_free_result ( resource $result )
Nach dem Login kopieren


  mysql_free_result() 仅需要在考虑到返回很大的结果集时会占用多少内存时调用。在脚本结束后所有关联的内存都会被自动释放

 

步骤五:关闭数据库连接

mysql_close()

  mysql_close()函数用于关闭 MySQL 连接


bool mysql_close ([ resource $link_identifier = NULL ] )
Nach dem Login kopieren


  mysql_close() 关闭指定的连接标识所关联的到 MySQL 服务器的非持久连接。如果没有指定 link_identifier,则关闭上一个打开的连接

  所以,一个比较完整的php操作数据库扩展函数的程序如下所示


<?php//连接数据库$link = mysql_connect(&#39;localhost&#39;,&#39;root&#39;,&#39;******&#39;);if(!$link){die(&#39;连接失败:&#39;.mysql_error());
}//选择数据库mysql_select_db(&#39;bookstore&#39;,$link) or die(&#39;不能选定数据库bookstore:&#39; .mysql_error());
//执行SQL命令$insert = "insert into books(bookname, publisher, author, price, detail) values
(&#39;PHP&#39;,&#39;电子工业出版社&#39;,&#39;张三&#39;,&#39;80.00&#39;,&#39;PHP相关&#39;),
(&#39;ASP&#39;,&#39;电子工业出版社&#39;,&#39;李四&#39;,&#39;90.00&#39;,&#39;ASP相关&#39;),
(&#39;JSP&#39;,&#39;电子工业出版社&#39;,&#39;王五&#39;,&#39;70.00&#39;,&#39;JSP相关&#39;)";
$result = mysql_query($insert);
//操作结果集$result = mysql_query("SELECT id,bookname,publisher,author,price FROM books");
echo &#39;&#39;;
echo &#39;&#39;;
echo &#39;编号&#39;;
echo &#39;书名&#39;;
echo &#39;出版社&#39;;
echo &#39;作者&#39;;
echo &#39;价格&#39;;
echo &#39;&#39;;
while($assoc = mysql_fetch_assoc($result)) {
echo &#39;&#39;;echo "{$assoc[&#39;id&#39;]}";echo "{$assoc[&#39;bookname&#39;]}";echo "{$assoc[&#39;publisher&#39;]}";
echo "{$assoc[&#39;author&#39;]}";echo "{$assoc[&#39;price&#39;]}";echo &#39;&#39;;
}echo &#39;&#39;;//释放结果集mysql_free_result($result);//关闭数据库连接mysql_close($link);?>
Nach dem Login kopieren

以上就是前端学PHP之mysql扩展函数的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage