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;}elseecho \'数据库连接上了!\';/* 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 查询
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.com\')\";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.com\')\";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.com\');\";$sql .= \"INSERT INTO MyGuests (firstname, lastname, email)VALUES (\'Mary\', \'Moe\', \'mary@example.com\');\";$sql .= \"INSERT INTO MyGuests (firstname, lastname, email)VALUES (\'Julie\', \'Dooley\', \'julie@example.com\')\";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.com\');\";$sql .= \"INSERT INTO MyGuests (firstname, lastname, email)VALUES (\'22\', \'Moe\', \'mary@example.com\');\";$sql .= \"INSERT INTO MyGuests (firstname, lastname, email)VALUES (\'22\', \'Dooley\', \'julie@example.com\')\";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);}function update($tableName, $column = array(), $where = \"\") {$updateValue = \"\";foreach ($column as $key => $value) {$updateValue .= $key . \"=\'\" . $value . \"\',\";}$updateValue = substr($updateValue, 0, strlen($updateValue) - 1);$sql = \"UPDATE $tableName SET $updateValue\";$sql .= $where ? \" WHERE $where\" : null;$this->query($sql);}function delete($tableName, $where = \"\"){$sql = \"DELETE FROM $tableName\";$sql .= $where ? \" WHERE $where\" : null;$this->query($sql);}function select($tableName, $columnName = \"*\", $where = \"\") {$sql = \"SELECT \" . $columnName . \" FROM \" . $tableName;$sql .= $where ? \" WHERE \" . $where : null;$this->query($sql);}function get_all($sql,$result_type = MYSQLI_ASSOC) {$query = $this->query($sql);$i = 0;$rt = array();while($row =& mysqli_fetch_array($query,$result_type)) {$rt[$i]=$row;$i++;}//$this->write_log(\"获取全部记录 \".$sql);return $rt;}function fetchRow($query){return mysqli_fetch_assoc($query);}function query($sql) {//$this->write_log(\"查询 \".$sql);mysqli_query($this->link,\"set names utf8\");$query = mysqli_query($this->link,$sql);//if(!$query) $this->halt(\'Query Error: \' . $sql);return $query;}//获取第一个字段值function getOne($sql, $limited = false){if ($limited == true){$sql = trim($sql . \' LIMIT 1\');}$res = $this->query($sql);if ($res !== false){$row = mysqli_fetch_row($res);if ($row !== false){return $row[0];}else{return \'\';}}else{return false;}}function fetch_array($query, $result_type = MYSQLI_ASSOC) {return mysqli_fetch_array($query, $result_type);}//输出记录function fetch_first($sql) {$res=$this->query($sql);return $this->fetch_array($res,MYSQLI_ASSOC);}// 取得一条数据记录function get_one($sql, $result_type = MYSQLI_ASSOC){$result = $this->query($sql);$record = $this->fetch_array($result, $result_type);return $record;}function getRow($sql, $limited = false){if ($limited == true){$sql = trim($sql . \'LIMIT 1\');}$res = $this->query($sql);if ($res !== false){return mysqli_fetch_assoc($res);}else{return false;}}//取影响条数function affected_rows() {return mysqli_affected_rows($this->link);}//从结果集中取得一行作为枚举数组function fetch_row($query) {return mysqli_fetch_row($query);}// 结果条数function num_rows($query) {return mysqli_num_rows($query);}// 取字段总数function num_fields($query) {return mysqli_num_fields($query);}// 返回查询结果function result($query, $row) {$query = mysqli_result($query, $row);return $query;}//释放结果集function free_result($query) {return mysqli_free_result($query);}//返回自增IDfunction insert_id() {return ($id = mysqli_insert_id($this->link)) >= 0 ? $id : $this->result($this->query(\"SELECT last_insert_id()\"), 0);}function close() {return mysqli_close($this->link);}function error() {return (($this->link) ? mysqli_error($this->link) : \'\');}//返回错误信息function errno() {return intval(($this->link) ? mysqli_errno($this->link) : \'\');}function halt($msg = \'\') {global $charset;$msg = \"<html>\\n<head>\\n\";$msg .= \"<meta content=\\\"text/html; charset=$charset\\\" http-equiv=\\\"Content-Type\\\">\\n\";$msg .= \"<style type=\\\"text/css\\\">\\n\";$msg .= \"body,p,pre {\\n\";$msg .= \"font:12px Verdana;\\n\";$msg .= \"}\\n\";$msg .= \"</style>\\n\";$msg .= \"</head>\\n\";$msg .= \"<body bgcolor=\\\"#FFFFFF\\\" text=\\\"#000000\\\" link=\\\"#006699\\\" vlink=\\\"#5493B4\\\">\\n\";$msg .= \"<b>error</b>: \".htmlspecialchars($this->error()).\"\\n<br />\";$msg .= \"<b>error number</b>: \".$this->errno().\"\\n<br />\";$msg .= \"<b>Date</b>: \".date(\"Y-m-d @ H:i\").\"\\n<br />\";$msg .= \"<b>Script File</b>: http://\".$_SERVER[\'HTTP_HOST\'].getenv(\"REQUEST_URI\").\"\\n<br />\";$msg .= \"</body>\\n</html>\";echo $msg;exit;}}?>
以上就是PHP7原生MySQL数据库操作实现代码的详细内容,更多关于php7 数据库操作方法的资料请关注脚本之家其它相关文章!
您可能感兴趣的文章:
- PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
- PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例
- thinkPHP5框架实现多数据库连接,跨数据连接查询操作示例
- PHP远程连接oracle数据库操作实现方法图文详解