其实今天没有欲望..-MySQLi,欲望..-MySQLi
其实今天没有欲望..-MySQLi,欲望..-MySQLi
hi
中午爽爽的游了会儿泳,但是下午把一拳超人看完了,竟然萌生不出学习的欲望了。。。强迫自己更新点东西吧,一会儿看书去。
1、MySQLi
二、MySQLi基于OOP的编程
2.1 使用解析
--基本
MySQLi是一个拓展类库,本质上是个类(?)。
一般流程和MySQL一样:连接,选库,字符集设定,SQL语句执行,关闭连接。
--链接库例子
/*
* 连接和选库
*/
$mysqli=new mysqli('localhost', 'root', '');
print_r($mysqli);echo "
";
echo $mysqli->select_db('test');echo "
";
$mysqli2=new mysqli();
print_r($mysqli2->connect('localhost', 'root', ''));echo "
";
print_r($mysqli3=new mysqli('localhost', 'root', '','test'));echo "
";
三种不同的方法,这里的方法都是利用mysqli的类属性来做的;当然也可以利用mysqli的命令来链接;
$con=mysqli_connect(HOST,USERNAME,PASSWORD)
结果中有一些信息
mysqli Object | |
( | |
[affected_rows] => 0 | |
[client_info] => mysqlnd 5.0.11-dev - 20120503 - $Id: bf9ad53b11c9a57efdb1057292d73b928b8c5c77 $ | |
[client_version] => 50011 | |
[connect_errno] => 0 | |
[connect_error] => | |
[errno] => 0 | |
[error] => | |
[error_list] => Array | |
( | |
) | |
[field_count] => 0 | |
[host_info] => localhost via TCP/IP | |
[info] => | |
[insert_id] => 0 | |
[server_info] => 5.6.17 | |
[server_version] => 50617 | |
[stat] => Uptime: 968 Threads: 1 Questions: 24 Slow queries: 0 Opens: 70 Flush tables: 1 Open tables: 63 Queries per second avg: 0.024 | |
[sqlstate] => 00000 | |
[protocol_version] => 10 | |
[thread_id] => 11 | |
[warning_count] => 0 | |
) |
这些属性都是可以通过对象的属性来得到的,比如
echo $mysqli->client_info;echo "
";
或者是通过相对应的方法得到,这些东西查手册可以看到。
header('content-type:text/html;charset=utf-8');
//1.建立到MySQL数据的连接
// $mysqli=new mysqli('localhost','root','root');
// //print_r($mysqli);
// //2.打开指定的数据库
// $mysqli->select_db('test');
// $mysqli=new mysqli();
// $mysqli->connect('127.0.0.1','root','root');
// print_r($mysqli);
//建立连接的同时打开指定数据库
$mysqli=@new mysqli('localhost','root','root','test');
//print_r($mysqli);
//$mysqli->connect_errno:得到连接产生的错误编号
//$mysqli->connect_error:得到连接产生的错误信息
if($mysqli->connect_errno){
die('Connect Error:'.$mysqli->connect_error);
}
print_r($mysqli);
echo '
';
echo '客户端的信息:'.$mysqli->client_info.'
';
echo $mysqli->get_client_info().'
';
echo '客户端的版本:'.$mysqli->client_version.'
';
echo '
';
echo '服务器端信息:'.$mysqli->server_info.'
';
echo $mysqli->get_server_info();
echo '
';
echo '服务器版本:'.$mysqli->server_version.'
';
echo '
';
--字符集例子
//1.建立到MySQL的连接
$mysqli=@new mysqli('localhost','root','root','test');
if($mysqli->connect_errno){
die('Connect Error:'.$mysqli->connect_error);
}
//2.设置默认的客户端编码方式utf8
$mysqli->set_charset('utf8');
//3.执行SQL查询
$sql= CREATE TABLE IF NOT EXISTS mysqli(
id TINYINT UNSIGNED AUTO_INCREMENT KEY,
username VARCHAR(20) NOT NULL
);
EOF;
$res=$mysqli->query($sql);
var_dump($res);
/*
SELECT/DESC/DESCRIBE/SHOW/EXPLAIN执行成功返回mysqli_result对象,执行失败返回false
对于其它SQL语句的执行,执行成功返回true,否则返回false
*/
//关闭连接
$mysqli->close();
需要注意的是数据库中的是utf8,而不是utf-8;
2.2 插入记录操作
增。
--connect.php
因为连接数据库的一系列操作是常用的,对于这种,我们简便的方法就是封装起来,到处调用
require_once 'connect.php';
connect.php
/*
* 连接和选库(头)文件
*/
$mysqli=new mysqli('localhost', 'root', '','test');
if($mysqli->connect_errno){
die('Connect Error:'.$mysqli->connect_error);
}else{
echo '客户端的信息:'.$mysqli->client_info.'
';
}
$mysqli->set_charset('utf8');
--增
/*
* 数据库插入数据
*/
require_once 'connect.php';
$sql="insert mysqli(username) value('Tom')";
echo $mysqli->query($sql);
这里执行的是单条的sql语句。
或者完善一点,添加一个判断,并输出错误信息。
if($res){
echo $mysqli->insert_id;
}else{
echo 'ERROR '.$mysqli->error;
}
或者,插入多条记录
$sql="insert mysqli(username) value('Sdaf'),('Andy')";
2.3 更新记录
更新。
$sql="update test set id=id+10";
$mysqli->query($sql);
2.4 删除
删
$sql="delete from mysqli where id>=2";
--
特别说明,affected_rows返回的情况有三种:
-1 sql语句有问题;
0 没有受影响的语句;
>=0 受影响的条数。
--小结
header('content-type:text/html;charset=utf-8');
$mysqli=new mysqli('localhost','root','root','test');
if($mysqli->connect_errno){
die('CONNECT ERROR:'.$mysqli->connect_error);
}
$mysqli->set_charset('utf8');
//执行SQL查询
//添加记录
//执行单条SQL语句,只能执行一条SQL语句
// $sql="INSERT user(username,password) VALUES('king','king');";
// $sql.="DROP TABLE user;";
$sql="INSERT user(username,password) VALUES('queen1','queen1'),('queen2','queen2'),('queen3','queen3'),('queen4','queen4')";
$res=$mysqli->query($sql);
if($res){
//得到上一插入操作产生的AUTO_INCREMENT的值
echo '恭喜您注册成功,您是网站第'.$mysqli->insert_id.'位用户
';
//得到上一步操作产生的受影响记录条数
echo '有'.$mysqli->affected_rows.'记录被影响';
}else{
//得到上一步操作产生的错误号和错误信息
echo 'ERROR '.$mysqli->errno.':'.$mysqli->error;
}
echo '
';
//将表中年龄+10
$sql="UPDATE user SET age=age+10";
$res=$mysqli->query($sql);
if($res){
echo $mysqli->affected_rows.'条记录被更新';
}else{
echo "ERROR ".$mysqli->errno.':'.$mysqli->error;
}
echo '
';
//将表中id$sql="DELETE FROM user WHERE id$res=$mysqli->query($sql);
if($res){
echo $mysqli->affected_rows.'条记录被删除';
}else{
echo "ERROR ".$mysqli->errno.':'.$mysqli->error;
}
//关闭到MySQL的连接
$mysqli->close();
2.5 查
需要注意的是,用的是select,所以返回的是结果集,是可以打印出来的print_r或var_dump。
所以这里就要说一下,返回的结果集的选择了。
header('content-type:text/html;charset=utf-8');
$mysqli=new mysqli('localhost','root','root','test');
if($mysqli->connect_errno){
die('CONNECT ERROR:'.$mysqli->connect_error);
}
$mysqli->set_charset('utf8');
$sql="SELECT id,username,age FROM user";
$mysqli_result=$mysqli->query($sql);
//var_dump($mysqli_result);
if($mysqli_result && $mysqli_result->num_rows>0){
//echo $mysqli_result->num_rows;
//$rows=$mysqli_result->fetch_all();//获取结果集中所有记录,默认返回的是二维的
//索引+索引的形式
//$rows=$mysqli_result->fetch_all(MYSQLI_NUM);
//$rows=$mysqli_result->fetch_all(MYSQLI_ASSOC);
//$rows=$mysqli_result->fetch_all(MYSQLI_BOTH);
// $row=$mysqli_result->fetch_row();//取得结果集中一条记录作为索引数组返回
// print_r($row);
// echo '
';
// $row=$mysqli_result->fetch_assoc();//取得结果集中的一条记录作为关联数组返回
// print_r($row);
// echo '
';
// $row=$mysqli_result->fetch_array();//二者都有的
// print_r($row);
// echo '
';
// $row=$mysqli_result->fetch_array(MYSQLI_ASSOC);
// print_r($row);
// echo '
';
// $row=$mysqli_result->fetch_object();
// print_r($row);
// echo '
';
// //移动结果集内部指针
// $mysqli_result->data_seek(0);
// $row=$mysqli_result->fetch_assoc();
// print_r($row);
// print_r($rows);
while($row=$mysqli_result->fetch_assoc()){
//print_r($row);
//echo '
';
$rows[]=$row;
}
print_r($rows);
//释放结果集
$mysqli_result->free();
}else{
echo '查询错误或者结果集中没有记录';
}
$mysqli->close();

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Gigabyte のマザーボードでキーボード起動を設定する方法 まず、キーボード起動をサポートする必要がある場合は、PS2 キーボードである必要があります。 !設定手順は次のとおりです: ステップ 1: 起動後に Del または F2 を押して BIOS に入り、BIOS の Advanced (Advanced) モードに移動します 通常のマザーボードは、デフォルトでマザーボードの EZ (Easy) モードに入ります。 F7 を押してアドバンスト モードに切り替える必要があります。ROG シリーズ マザーボードはデフォルトで BIOS に入ります。アドバンスト モード (説明には簡体字中国語を使用します) ステップ 2: - [アドバンスト] - [アドバンスト パワー マネージメント (APM)] を選択します。 ステップ 3 : オプション [PS2 キーボードによるウェイクアップ] を見つけます ステップ 4: このオプション デフォルトは無効です プルダウンすると、3 つの異なる設定オプションが表示されます: [スペースバー] を押してコンピューターの電源をオンにし、グループを押します

1. プロセッサ コンピュータ構成を選択する場合、プロセッサは最も重要なコンポーネントの 1 つです。 CS などのゲームをプレイする場合、プロセッサーのパフォーマンスはゲームのスムーズさや応答速度に直接影響します。 Intel Core i5 または i7 シリーズ プロセッサを選択することをお勧めします。これらのプロセッサは、強力なマルチコア処理能力と高周波数を備え、CS の高い要件に簡単に対応できるためです。 2. グラフィックス カード グラフィックス カードは、ゲームのパフォーマンスを左右する重要な要素の 1 つです。 CSなどのシューティングゲームでは、グラフィックカードの性能がゲーム画面の鮮明さや滑らかさに直結します。優れたグラフィックス処理能力と高いフレームレート出力を備え、より優れたゲーム体験を提供できる NVIDIA GeForce GTX シリーズまたは AMD Radeon RX シリーズ グラフィックス カードを選択することをお勧めします。

マザーボード上の SPDIFOUT 接続線の順序 最近、ワイヤの配線順序に関する問題に遭遇しました。ネットで調べたところ、1、2、4がアウト、+5V、グラウンドに相当するという情報もあれば、1、2、4がアウト、グラウンド、+5Vに相当するという情報もありました。最善の方法は、マザーボードのマニュアルを確認することです。マニュアルが見つからない場合は、マルチメーターを使用して測定できます。最初にアースを見つけてから、残りの配線の順序を決定します。マザーボードの VDG 配線の接続方法 マザーボードの VDG 配線を接続するときは、VGA ケーブルの一端をモニターの VGA インターフェイスに差し込み、もう一端をコンピューターのグラフィックス カードの VGA インターフェイスに差し込む必要があります。マザーボードの VGA ポートに差し込まないよう注意してください。接続すると、次のことが可能になります

Glodon Software は建築情報化分野に注力するソフトウェア会社で、その製品は建築の設計、建設、運用のあらゆる側面で広く使用されています。 Glodon ソフトウェアは機能が複雑でデータ量が大きいため、高度なコンピュータ構成が必要です。この記事では、読者が適切なコンピューター構成プロセッサーを選択できるように、Glodon Software のコンピューター構成に関する推奨事項をさまざまな側面から詳しく説明します。Glodon Software は、アーキテクチャー設計、シミュレーション、その他の操作を実行するときに大量のデータの計算と処理を必要とします。プロセッサの方が高いです。 Intel i7 シリーズや AMD Ryzen シリーズなど、マルチコアの高周波数プロセッサを選択することをお勧めします。これらのプロセッサは強力なコンピューティング能力とマルチスレッド処理能力を備えており、Glodon ソフトウェアのニーズをより適切に満たすことができます。メモリ メモリがコンピューティングに影響を与えています

グラフィックス カード ドライバーのどのバージョンを使用するのが最適ですか? 1. 絶対的な最適なバージョンはありません。お使いのコンピューターに適したバージョンを選択することが最も重要です。2. グラフィックス カード ドライバーのバージョンの適用性と安定性は、次のことに関連しているためです。コンピューターのハードウェア環境とシステム構成; 3. 公式 Web サイトでコンピューターとグラフィックス カードの詳細情報を確認し、その情報に基づいて適切なドライバーのバージョンを選択したり、他のユーザーのレビューを参照したりできます。予期せぬ事態を避けるために、ドライバーをインストールする前にシステムをバックアップすることをお勧めします。グラフィックス カード ドライバー バージョン 472.19 シリーズは、優れた選択肢です。現在、ドライバーの互換性はバージョン 472 が最も優れています。ドライバーのバージョン 472 をインストールすると、グラフィックス カードのパフォーマンスを最大化することもできます。 NVIDIA グラフィックス カード ドライバー Win7 インストール バージョン (番号 2、472.19) は、顕著な品質を備えた製品です。

チベットにバックパッキングに行く予定です ①バッグは何リットルくらい持っていきますか?ベストな構成を教えてください 私は170歳で体力はありますが、初めてハイキングに行ったときは60リットルでしたリットル以上 ハイキングの量は60リットル未満 移動はすべて車でした リュックサックは必要ありません、スーツケースが便利です どうしても何かを持ち歩きたい場合は25〜40リットルチベット旅行の必需品:サングラス、日よけ帽子、日焼け止め、スキンクリーム、リップクリーム、長袖上着、セーター;特別な旅行やアリ、北チベット、四川チベット線への旅行の場合は、これが必要です。持参推奨品:寝袋(防寒)、シーツ(汚れ防止)、ダウンジャケット、旅行靴または登山靴、スリッパ、歯ブラシ、歯磨き粉、タオル、巻き紙、紙パンツ、消毒用ワイプ、懐中電灯、防水マッチ、ナイフ、ロープ。フロント バッグにコンピューターを入れて持ち運べますか? フロント バッグにコンピューターを入れて持ち運べますか? バックパックによっては、フロント バッグに入れて持ち運べますか?

どの 1155 ピン CPU が最適かを教えてください。現在最も性能の高い 1155 ピン CPU は Intel Corei7-3770K です。 4 コアと 8 スレッド、3.5 GHz の基本周波数を備え、最大 3.9 GHz に達する TurboBoost2.0 テクノロジーをサポートします。また、8MBのレベル3キャッシュを搭載し、最も強力なCPU Intel Core i73770KのLGA1155ピンを搭載した優れたプロセッサーです。 LGA1155 インターフェイスは、第 2 世代および第 3 世代の Core プロセッサで使用されるインターフェイス タイプです。最もパフォーマンスが高いのは Intel Core i73770K です。このプロセッサのパラメータは次のとおりです: 1. 適用可能なタイプ: デスクトップ; 2. CPU シリーズ: Core i7; 3. 。 CPU

DeepseekはZhihuに関する技術記事をリリースし、Deepseek-V3/R1推論システムを詳細に導入し、初めて主要な財務データを開示し、業界の注目を集めました。この記事は、システムの毎日のコストの利益率が545%に高いことを示しており、グローバルなAIビッグモデルの利益の新たな高値を設定しています。 Deepseekの低コスト戦略は、市場競争において有利になります。モデルトレーニングのコストは同様の製品の1%から5%であり、V3モデルトレーニングのコストはわずか5576百万米ドルであり、競合他社のコストよりもはるかに低くなっています。一方、R1のAPI価格設定は、Openaio3-Miniの1/7〜1/2です。これらのデータは、DeepSeekテクノロジールートの商業的実現可能性を証明し、AIモデルの効率的な収益性も確立します。
