ホームページ >バックエンド開発 >PHPチュートリアル >突然、今週はちょっと忙しいことに気づきました - PHP 上級

突然、今週はちょっと忙しいことに気づきました - PHP 上級

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-23 13:21:56879ブラウズ

こんにちは

まだ火曜日だけど、今週はちょっと忙しいことに気づいたので、まだ楽しみにしています – 私は今日の午後に街に行くので、見に戻ってきます夕方映画、明日の夜は鍋のディナーパーティーをして、明後日の午後に撮影します。短いビデオ、夕方にボールをプレーしなければならないかもしれません、金曜日、まあ、金曜日です。この状況が続くと、(ビアンの)週報をどうやって書けばいいのかさえわかりませんが、それでもそうすることは良い考えです。

1. PHP の高度な完成

11. データベース操作

11.1 PHP はどのデータベースをサポートしますか?

PHP は、対応する拡張機能をインストールすることでデータベース操作を実装します。するデータベースは必要ありません。現在の主流のデータベースには、MsSQL、MySQL、Sybase、Db2、Oracle、PostgreSQL、Access などが含まれます。PHP は、これらのデータベースをサポートする拡張機能をインストールできます。一般に、LAMP アーキテクチャとは、Linux、Apache、Mysql、 PHPではMysqlデータベースが広く使われているので、この章ではMysqlの操作方法を簡単に理解します。

11.2 データベース拡張機能

PHP のデータベースには、公式拡張機能やサードパーティによって提供される拡張機能など、1 つ以上の拡張機能が含まれる場合があります。 Mysql で一般的に使用される拡張機能にはネイティブ mysql ライブラリが含まれており、拡張された mysqli 拡張機能を使用することもでき、接続と操作に PDO を使用することもできます。

異なる拡張機能は基本的に同様の操作方法を提供しますが、いくつかの新しい機能が追加されたり、操作パフォーマンスが異なる場合があります。データベース接続のためのMysQl拡張法:

rreee

mysqli拡張拡張:

rreee

pdo拡張:rreee

pdo拡張

rreee ('データベース接続に失敗しました');

mysql_select_db('code1');mysql_query("セット名 'utf8'");$result = mysql_query('ユーザー制限 1 から * を選択');

$row = mysql_fetch_assoc ( $result);
print_r($row);


11.3 MySQL データベースへの接続

データベースを操作するには、通常、PHP がデータベースとの接続を確立する必要があります。データベースに接続するための機能 この機能では、データベース アドレス、ユーザー名、およびパスワードを指定する必要があります。

$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password');

PHP がデータベースに接続する方法は、mysql -hlocalhost -ucode1 -p のように、コマンド ラインで直接接続するのと似ています。接続が成功したら、オペレーティング データベースを選択し、 mysql_select_db 関数。

$link = mysqli_connect('mysql_host', 'mysql_user', 'mysql_password');

通常、最初に現在の接続で使用される文字エンコーディングを設定します。通常は utf8 エンコーディングを使用します。

$dsn = 'mysql:dbname=testdb;host=127.0.0.1';$user = 'dbuser';$password = 'dbpass';$dbh = new PDO($dsn, $user, $password);

上記の手順により、データベースとの接続が確立され、データ操作を実行できるようになります。

60f349b10693e16c02e1a7f10e9e785b';
print_r($row);
echo 'bc5574f69a0cba105bc93bd3dc13c4ec';

11.7 查询分页数据

上一节中,我们了解到通过循环可以获取一个查询的所有数据,在实际应用中,我们并不希望一次性获取数据表中的所有数据,那样性能会非常的低,因此会使用翻页功能,每页仅显示10条或者20条数据。

通过mysql的limit可以很容易的实现分页,limit m,n表示从m行后取n行数据,在PHP中我们需要构造m与n来实现获取某一页的所有数据。

假定当前页为$page,每页显示$n条数据,那么m为当前页前面所有的数据,既$m = ($page-1) * $n,在知道了翻页原理以后,那么我们很容易通过构造SQL语句在PHP中实现数据翻页。

$page = 2;$n = 2;$m = ($page - 1) * $n;$sql = "select * from user limit $m, $n";$result = mysql_query($sql);//循环获取当前页的数据$data = array();while ($row = mysql_fetch_assoc($result)) {    $data[] = $row;}

在上面的例子中,我们使用了$m与$n变量来表示偏移量与每页数据条数,但我们推荐使用更有意义的变量名来表示,比如$pagesize, $start, $offset等,这样更容易理解,有助于团队协作开发。

9ece82ebed5870ac4c0d4a9f8b736d4e';
print_r($data);
echo 'bc5574f69a0cba105bc93bd3dc13c4ec';

11.8 更新与删除数据

数据的更新与删除相对比较简单,只需要构建好相应的sql语句,然后调用mysql_query执行就能完成相应的更新与删除操作。

$sql = "update user set name = '曹操' where id=2 limit 1";if (mysql_query($sql)) {    echo '更新成功';}

同样的删除可以使用类似以下的代码:

$sql = "delete from user where id=2 limit 1";if (mysql_query($sql)) {    echo '删除成功';}

对于删除与更新操作,可以通过mysql_affected_rows函数来获取更新过的数据行数,如果数据没有变化,则结果为0。

$sql = "update user set name = '曹操' where id=2 limit 1";if (mysql_query($sql)) {    echo mysql_affected_rows();}

//连接数据库
mysql_connect('127.0.0.1', 'code1', '');
mysql_select_db('code1');
mysql_query("set names 'utf8'");
//预设数据以便进行更新操作
mysql_query("insert into user(name, age, class) values('王二', 19, '高三五班')");
$id = mysql_insert_id();
//在这里更新id为$id的行的名字为李白
$sql="update user set name='李白' where id=$id limit 1";
mysql_query($sql);
//输出更新数据条数
echo '数据更新行数:'.mysql_affected_rows();
mysql_query("delete from user where id='$id'");

11.9 关闭MySQL连接

当数据库操作完成以后,可以使用mysql_close关闭数据库连接,默认的,当PHP执行完毕以后,会自动的关闭数据库连接。

mysql_close();

虽然PHP会自动关闭数据库连接,一般情况下已经满足需求,但是在对性能要求比较高的情况下,可以在进行完数据库操作之后尽快关闭数据库连接,以节省资源,提高性能。

在存在多个数据库连接的情况下,可以设定连接资源参数来关闭指定的数据库连接。

$link = mysql_connect($host, $user, $pass);mysql_close($link);

//连接数据库
$con=mysql_connect('127.0.0.1', 'code1', '');
mysql_select_db('code1');
mysql_query("set names 'utf8'");
//在这里关闭数据库连接

mysql_close($con);

 

 

 

 

 

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。