使用mysqli扩展操作mysql数据
一、准备工作
在开始之前,确保你的服务器环境已经安装了以下组件:
- PHP:确保PHP已经安装并正确配置。
- MySQL:确保MySQL数据库服务器已经安装并运行。
- mysqli扩展:检查PHP是否已经启用mysqli扩展。可以通过查看
phpinfo()输出或检查php.ini文件中的extension=mysqli配置项。
二、安装和配置mysqli扩展
如果你发现mysqli扩展未启用,可以通过以下步骤进行安装和配置:
- 编辑php.ini文件: 打开PHP的配置文件
php.ini,找到extension=mysqli这一行,去掉前面的分号(;)以启用该扩展。
extension=mysqli
PHPstudy中使用自带MySQL数据库的连接方法和配置环境(超详细实用分享)
一.连接方法
1.使用MySQL命令行进行连接
首先启动phpstudy
然后点击其他选项菜单--->网站根目录
进入PHPTutorial
点击MySQL文件,再点击bin文件
空白处右键在点击在终端中打开
输入mysql -uroot -p ,password一般默认密码是root
连接成功
2.使用MySQL-front连接
点击MySQL管理器,再点击MySQL-front
进去后,如果可以打开就直接点打开,没有就自己创一个用户
<?php
// 告诉浏览器以什么方式解析什么类型的文档,反正乱码
header('content-type:text/html;charset=utf-8');
$servername = "localhost";
$username = "root";
$password = "root";
// 创建连接
$conn = new mysqli($servername, $username, $password);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "连接成功";
?>
在phpmyadmin中显示中文就出现 “????” 乱码
查看该表的属性,在“操作”->”表选项”中看见”整理”这个下拉框中显示”latin1_swedish_ci”,发现不对,应该使用unicode码,于是将其改成”utf8_general_ci“。再次向表中插入数据,发现中文还是乱码。
查看“表结构”,发现每个字段后面的“整理”都为”latin1_swedish_ci”,于是将其更改成”utf8_general_ci“,再向表中插入中文数据,不显示乱码了。
在创建表的时候应该先添加字段的编码,在字段类型后面添加”CHARACTER SET utf8 COLLATE utf8_general_ci“
<?php
// 告诉浏览器以什么方式解析什么类型的文档,反正乱码
header('content-type:text/html;charset=utf-8');
$servername = "localhost";
$username = "root";
$password = "root";
// 创建连接
$conn = mysqli_connect($servername, $username, $password);
// 检查连接
if(mysqli_connect_errno() != null){
die(mysqli_connect_errno());
}else{
echo '连接成功';
}
// 选择数据库
mysqli_select_db($conn,'test');
// 设置字符集
mysqli_set_charset($conn,'utf8');
//// sql语句
// 创建数据库
//$sql = "CREATE DATABASE phpData";
//if($conn->query($sql) === TRUE){
// echo "数据库创建成功";
//}else{
// echo "创建数据库错误:" . $conn->error;
//}
// 创建表
//$sql = "CREATE TABLE user (
// id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
// current_field INT,
// field_count INT,
// num_rows INT,
// type INT,
// reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
// )";
//
//if ($conn->query($sql) === TRUE) {
// echo "表 user 创建成功";
//} else {
// echo "创建表错误: " . $conn->error;
//}
//$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 DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
// )";
//
//if ($conn->query($sql) === TRUE) {
// echo "表 MyGuests 创建成功";
//} else {
// echo "创建表错误: " . $conn->error;
//}
// 插入数据
// 向表中插入数据可以使用INSERT INTO语句。
//$sql = "INSERT INTO MyGuests (firstname, lastname, email)
//VALUES ('John', 'Doe', 'john@example.com')";
//
//if ($conn->query($sql) === TRUE) {
// echo "新记录插入成功";
//} else {
// echo "插入错误: " . $conn->error;
//}
//
// 执行sql$sql = "INSERT INTO MyGuests (firstname, lastname, email)
////VALUES ('lin', 'xihong', 'lin@example.com'),('用户8', 'xihong', 'lin@example.com'),('用户9', 'xihong', 'lin@example.com')";
// 更新数据
//$sql = "UPDATE MyGuests SET firstname = 'cname' where id > 4";
$sql = "DELETE FROM MyGuests WHERE id > 4";
$result = mysqli_query($conn, $sql);
// 解析sql语句结果
if ($result) {
// echo '执行成功' . mysqli_affected_rows($conn) . "条数据!" . mysqli_insert_id($conn);
// echo '更新成功' . mysqli_affected_rows($conn) . "条数据!";
echo '删除成功' . mysqli_affected_rows($conn) . "条数据!";
} else {
echo '执行失败';
}
// 执行sql语句
//$sql = "select * from `MyGuests` limit 1";
//// 执行语句
//$result =mysqli_query($conn,$sql);
//$array = mysqli_fetch_array($result);
//echo '<br/>';
//var_dump($array,MYSQLI_NUM);
//查询数据
//从表中查询数据可以使用SELECT语句。
//$sql = "SELECT id, firstname, lastname, email 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"]. " - Email: " . $row["email"]. "<br>";
// }
//} else {
// echo "0 结果";
//}
//更新数据
// 更新表中的数据可以使用UPDATE语句。
//$sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2";
//
//if ($conn->query($sql) === TRUE) {
// echo "记录更新成功";
//} else {
// echo "更新错误: " . $conn->error;
//}
// 关闭数据库
mysqli_close($conn);