php和MySQL的那些事

新手刚入门PHP,整合了一些关于PHP和MySQL的知识,以备日后查询
主要参考教程为菜鸟:http://www.runoob.com/php/php-mysql-intro.html
1、输入数据库信息

$servername = 'localhost';
$username = 'root';
$password = '';
$dbname = 'myDB';//有数据库存在的情况下输入此条,没有则不用写

2、连接数据库

$conn = new mysqli($servername, $username, $password, $dbname);//没有数据库的情况下,第四个参数不用写

3、检测数据库是否连接成功

if ($conn->connect_error) {
    die('连接失败:'.$conn->connect_error);
}

注:1、2和3也可写为:

$conn = mysqli_connect('localhost', 'root', '', 'myDB');
if (mysqli_connect_errno) {
    echo '连接失败:'.mysqli_connect_error();
}

4、创建数据库

$sql = 'CREATE DATABASE myDB';

5、检测数据库是否创建成功

if ($conn->query($sql) === TRUE) {
    echo '数据库创建成功';
} else {
    echo 'Error creating database:'.$conn->error;
}
$conn->close();//关闭数据库,若进行到此步不需往下,则需关闭,还需进行其他步骤则不用写此句

6、创建数据库表

$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)";

7、检测数据库表是否创建成功

if ($conn->query($sql) === TRUE) {
    echo 'Table MyGuests created successfully';
} else {
    echo '创建数据库表错误:'.$conn->error;
}
$conn->close();//关闭数据库,若进行到此步不需往下,则需关闭,还需进行其他步骤则不用写此句

8、向数据库表中插入数据,两种方式
(1)普通插入数据
列设置 AUTO_INCREMENT (如 “id” 列) 或 TIMESTAMP (如 “reg_date” 列), MySQL 会自动为该列添加值

$sql = "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('John', 'Doe', 'John@example.com')";
//检测是否插入成功
if ($conn->query($sql) === TRUE) {
    echo '新纪录插入成功';
} else {
    echo 'Erroe:'.$sql.'<br>'.$conn->error;
}
$conn->close();//关闭数据库,若进行到此步不需往下,则需关闭,还需进行其他步骤则不用写此句

(2)预处理语句插入数据(防止sql注入)

//为mysqli_stmt_prepare()初始化statement对象
$stmt = mysqli_stmt_init($conn);

//预处理及绑定
$stmt = $conn->prepare("INSERT INTO MyGuests (firstname, lastname, email) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $firstname, $lastname, $email); //s 字符告诉数据库该参数为字符串

//设置参数并执行
$firstname = 'san';
$lastname = 'zhang';
$email = 'san@exampli.com';
$stmt->execute();

$firstname = 'si';
$lastname = 'li';
$email = 'si@example.com';
$stmt->execute();

$firstname = 'wu';
$lastname = 'wang';
$email = 'wu@example.com';
$stmt->execute();

echo '新纪录插入成功';

$stmt->close();/关闭预处理
$conn->close();//关闭数据库,若进行到此步不需往下,则需关闭,还需进行其他步骤则不用写此句

9、读取数据库数据
(1)读取数据库表中所有的信息

//选择表
$sql = "SELECT id, firstname, lastname FROM MyGuests";
//从数据库中取出结果集并赋给复制给变量 $result。
$result = $conn->query($sql);
//判断是否存在数据,函数 num_rows() 判断返回的数据。
if ($result->num_rows > 0) {
    //输出数据,如果返回的是多条数据,函数 fetch_assoc() 将结合集放入到关联数组并循环输出 
    while($row = $result->fetch_assoc()) {
        echo "id:".$row["id"]."-Name:".$row["firstname"]." ".$row["lastname"]."<br>";
    }
} else {
    echo  "0 结果";
}
$conn->close();//关闭数据库,若进行到此步不需往下,则需关闭,还需进行其他步骤则不用写此句

(2)使用WHERE选取数据库表中指定行的信息

//从数据库中取出结果集并赋给复制给变量 $result。
$result = mysqli_query($conn, "SELECT * FROM MyGuests WHERE firstname = 'san'");
//输出数据,如果返回的是多条数据,函数 fetch_assoc() 将结合集放入到关联数组并循环输出
while($row = mysqli_fetch_array($result))
{
    echo $row['firstname']." ".$row['lastname']." ".$row['email'];
    echo '<br>';
}
//也可参照(1)判断是否有数据存在
$conn->close();//关闭数据库,若进行到此步不需往下,则需关闭,还需进行其他步骤则不用写此句

10、使用Order By关键词对数据进行排序(默认升序,降序使用DESC)
语法:

SELECT column_name(s)
FROM table_name
ORDER BY column_name(s) ASC|DESC

举例:

$result = mysqli_query($conn, "SELECT * FROM MyGuests ORDER By id");

while($row = mysqli_fetch_array($result))
{
    echo $row['firstname']." ".$row['lastname']." ".$row['id']."<br>";
}

mysqli_close($conn);

也可进行多列排序
语法:

SELECT column_name(s)
FROM table_name
ORDER BY column1, column2

11、修改更新数据库内容(UPDATE)
语法:

UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value

注:UPDATE 语法中的 WHERE 子句。WHERE 子句规定了哪些记录需要更新。如果省去 WHERE 子句,所有的记录都会被更新

mysqli_query($conn, "UPDATE MyGuests SET email='test@example.com' WHERE firstname='san' AND lastname='zhang'");
mysqli_close($conn);

12、删除数据库内容(DELETE)
语法:

DELETE FROM table_name
WHERE some_column = some_value

注:DELETE 语法中的 WHERE 子句。WHERE 子句规定了哪些记录需要删除。如果省去 WHERE 子句,所有的记录都会被删除

mysqli_query($conn, "DELETE FROM MyGuests WHERE firstname='san'");
mysqli_close($conn);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值