PHP7原⽣MySQL数据库操作实现代码
php7中mysql的连接与使⽤与PHP5中⼤不相同
PHP5中mysql_connect()等函数⼤多被PHP7中类的成员函数所代替。PHP5中连接mysql是过程性的,⽽PHP7中强调了类的使⽤与⾯向对象的⽅法
$user = new mysqli();
//Connect to mysql
$user->connect("localhost", "root", "q721@Ms67", "Student");
mysql的连接被mysqli类所替代
//Search in mysql
$query = 'SELECT * FROM users';
//Use a variable to save result
$result = $user->query($query);
查询语句也变成了类的成员函数
连接到 MySQL服务器
mysqli_connect(host, username, password [,dbname] [,port]);
- 参数:
host:MySQL服务器。可以包含端⼝号,默认值为“localhost:3306”
username:⽤户名。默认值是服务器进程所有者的⽤户名;
password:密码。
dbname:数据库名称。
port:MySQL服务器的端⼝号,默认为3306。
- 返回值:如果连接成功,则返回 mysqli 连接对象。如果失败,则返回 false。
实例代码⼀
<?php
$mysqli = new mysqli("localhost", "root", "password", "testgame");
if(!$mysqli) {
echo"database error";
}else{
echo"php env successful";
}
$mysqli->close();
>
localhost 意思是本地主机,如果你是在⾃⼰电脑上的话,这项就不⽤改了
root是mysql的⽤户名,如果你是默认的没有修改,也不⽤管,直接copy
password 这事mysql的密码,如果你没有试着的话,直接写空的就⾏,""这样哦
代码⼆
<?php
/* Connect to a MySQL server 连接数据库服务器 */
$link = mysqli_connect(
'localhost', /* The host to connect to 连接MySQL地址 */
'root', /* The user to connect as 连接MySQL⽤户名 */
'root', /* The password to use 连接MySQL密码 */
'lucax_database'); /* The default database to query 连接数据库名称*/
if (!$link) {
printf("Can't connect to MySQL Server. Errorcode: %s ", mysqli_connect_error());
exit;
}else
echo '数据库连接上了!';
/* Close the connection 关闭连接*/
mysqli_close($link);
>
代码三
<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "myDB";
// 创建连接
# Tip: 如果你使⽤其他端⼝(默认为3306),为数据库参数添加空字符串,如: new mysqli("localhost", "username", "password", "", port)
$conn = new mysqli($servername, $username, $password,$dbname);
// 检测连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "连接成功";
$conn->close();
>
选择当前数据库
mysqli_select_db(mysqliLink, database)
- 描述:⼀个数据库服务器可能包含很多的数据库,通常需要针对某个具体的数据库进⾏编程
- 返回值:如果成功返回TRUE,失败则返回FALSE
设置客户端字符集
mysqli_set_charset(mysqliLink, charset)
- 描述:设置默认字符编码
- 返回:成功时返回 TRUE,或者在失败时返回 FALSE。
发送⼀条 MySQL 查询
php mysql教程视频mysqli_query(mysqliLink , queryStr)
- 参数:
query是查询字符串;
link是创建的活动的数据库连接;
- 说明:mysqli_query() 仅对 SELECT,SHOW 或 DESCRIBE 语句返回⼀个mysqli_result结果集对象,如果查询执⾏不正确则返回 FALSE。对于其它类型的 SQL 语句,mysqli_query()在执⾏成功时返回 TRUE,出错时返回 FALSE。⾮ FALSE 的返回值意味着查询是合法的并能够被服务器执⾏。
- 注意:查询字符串不应以分号结束,和命令⾏模式下有区别。
从结果集中取得⼀⾏作为关联数组,或数字数组,或⼆者兼有
mysqli_fetch_array ( mysqliResult [, resultType] )
- 参数:resultType是⼀个常量,取值:MYSQLI_BOTH(两者兼有,默认)、MYSQLI_ASSOC(关联索引)、MYSQLI_NUM(数字索引)
- 返回:返回根据从结果集取得的⾏⽣成的数组,如果没有更多⾏则返回 FALSE。
- 注意:本函数返回的字段名区分⼤⼩写。
从结果集中取得所有⾏作为关联数组、枚举数组、或⼆者兼有
mysqli_fetch_all(mysqliResult [, resultType ])
- 参数:$result_type是⼀个常量,取值:MYSQLI_BOTH(两者兼有,默认)、MYSQLI_ASSOC(关联索引)、
MYSQLI_NUM(数字索引)
- 返回:返回根据从结果集取得的⾏⽣成的数组,如果没有更多⾏则返回 FALSE。
- 注意:本函数返回的字段名区分⼤⼩写。
取得结果集中⾏的数⽬
mysqli_num_rows(mysqliResult)
- 注意:此命令仅对 SELECT 语句有效。
从结果集中取得⼀⾏作为关联数组
array mysqli_fetch_assoc(mysqliResult)
- 返回值:从结果集取得的⾏⽣成的关联数组,如果没有更多⾏则返回 FALSE;
- 注意:此函数返回的字段名⼤⼩写敏感。
取得前⼀次 MySQL 操作所影响的记录⾏数
mysqli_affected_rows ( mysqliLink )
- 说明:取得最近⼀次与 $link 关联的 SELECT、INSERT、UPDATE 或 DELETE 查询所影响的记录⾏数。
- 注意:如果最近⼀次查询失败,函数返回-1。当使⽤UPDATE查询,MySQL不会将原值和新值⼀样的值更新,返回值不⼀定就是查询条件所符合的记录,只有修改过的记录数才会被返回。
释放与结果集相关联的内存
mysqli_free_result(mysqliResult)
- 参数:mysqliResult为结果集对象。
返回上⼀个 MySQL 连接产⽣的⽂本错误信息
mysqli_connect_error()
- 参数:没有参数
php7创建数据库:
⽅法⼀:
$sql = "CREATE DATABASE myDB3";
if (mysqli_query($conn, $sql)) {
echo "数据库创建成功";
} else {
echo "Error creating database: " . mysqli_error($conn);
}
⽅法⼆:
/
/ 检测连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "连接成功";
$sql = "CREATE DATABASE myDB2";
if ($conn->query($sql) === TRUE) {
echo "数据库创建成功";
} else {
echo "Error creating database: " . $conn->error;
}
创建表的⽅法:
⽅法⼀:
// 使⽤ sql 创建数据表
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
if (mysqli_query($conn, $sql)) {
echo "数据表 MyGuests 创建成功";
} else {
echo "创建数据表错误: " . mysqli_error($conn);
}
⽅法⼆:
// 使⽤ sql 创建数据表
$sql = "CREATE TABLE MyGuests2 (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
if ($conn->query($sql) === TRUE) {
echo "Table MyGuests created successfully";
} else {
echo "创建数据表错误: " . $conn->error;
}
插⼊数据的⽅法:
⽅法⼀:
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example')";
if (mysqli_query($conn, $sql)) {
echo "新记录插⼊成功";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
⽅法⼆:
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example')";
if ($conn->query($sql) === TRUE) {
echo "新记录插⼊成功";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
插⼊多条数据的⽅法:
⽅法⼀:
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example');";
$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Mary', 'Moe', 'mary@example');";
$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Julie', 'Dooley', 'julie@example')";
if (mysqli_multi_query($conn, $sql)) {
echo "新记录插⼊成功";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
⽅法⼆:
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('22', 'Doe', 'john@example');";
$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('22', 'Moe', 'mary@example');";
$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('22', 'Dooley', 'julie@example')";
if ($conn->multi_query($sql) === TRUE) {
echo "新记录插⼊成功";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
查询数据库的⽅法:
⽅法⼀:
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// 输出数据
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>"; }
} else {
echo "0 结果";
}
⽅法⼆:
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// 输出数据
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>"; }
} else {
echo "0 结果";
}
看到这⾥⼩编再为⼤家分享⼀个整理好的类库
<?php
/**
* 数据库操作类
*/
!defined('ROOTNAME') && exit('FORBIDDEN');
class db_mysql{
var $query_num = 0;
var $link;
function __construct($dbhost, $dbuser, $dbpw, $dbname) {
$this->connect($dbhost, $dbuser, $dbpw, $dbname);
}
function connect($dbhost, $dbuser, $dbpw, $dbname) {
// global $dbcharset;
if(!$this->link = @mysqli_connect($dbhost, $dbuser, $dbpw, $dbname)) {
$this->halt("Can not connect to MySQL server");
}
if($this->server_info() > '5.0'){
mysqli_query($this->link, "SET sql_mode=''");
}
/*
if($dbname) {
if (!@mysqli_select_db($dbname, $this->link)){
$this->halt('Cannot use database '.$dbname);
}
}*/
}
function select_db($dbname) {
$this->dbname = $dbname;
if (!@mysqli_select_db($dbname, $this->link)){
$this->halt('Cannot use database '.$dbname);
}
}
function server_info() {
return mysqli_get_server_info($this->link);
}
function version() {
return mysqli_get_server_info($this->link);
}
function insert($tableName, $column = array()) {
$columnName = "";
$columnValue = "";
foreach ($column as $key => $value) {
$columnName .= $key . ",";
$columnValue .= "'" . $value . "',";
}
$columnName = substr($columnName, 0, strlen($columnName) - 1);
$columnValue = substr($columnValue, 0, strlen($columnValue) - 1);
$sql = "INSERT INTO $tableName($columnName) VALUES($columnValue)";
$this->query($sql);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论