当前位置: 首页 > news >正文

php数据库链接

Php超全局变量

GET POST 都创建一个数组(例如 array key1 => value1 key2 => value2 key3 => value3 ...))。此数组包含键/值对,其中 键是表单控件的名称,值是来自用户的输入数据。

GET POST 都被视为 _GET 美元和 _POST 美元。这些是超全局, 这意味着无论范围如何,它们始终都可以访问 - 您可以从任何功能访问它们, 类或文件,而无需执行任何特殊操作。

$_GET 是通过 URL 参数传递给当前脚本的变量数组。

$_POST 是通过 HTTP POST 方法传递给当前脚本的变量数组。

$_get 

使用 GET 方法从表单发送的信息对每个人都可见(所有 变量名称和值显示在 URL 中)。GET 要发送的信息。限制约为 2000 个字符。然而 由于变量显示在 URL 中,因此可以将 页。这在某些情况下可能很有用。

GET 可用于发送非敏感数据。

注意:永远不要使用GET来发送密码或其他敏感信息

$_post

使用 POST 方法从表单发送的信息对其他人是不可见的(所有名称/值都嵌入在 HTTP 请求的正文中),并且 对要发送的信息量没有限制

此外,POST还支持高级功能,例如支持多部分 将文件上传到服务器时的二进制输入。

但是,由于变量未显示在 URL 中,因此无法为页面添加书签

创建一张名为table.php的php表格    一张名为table.html的表格

观察以下代码

  1. Html基本表单部分

<html>

<body>

<form action="welcome.php" method="POST">

Name: <input type="text" name="name"><br>

E-mail: <input type="text" name="email"><br>

<input type="submit">

</form>    //action部分定义了post应该发送到哪里去

</body>    //name部分中type定义了发送数据的类型为text文本

</html>    //name中的 name定义了在php脚本中post应当得到的键

  1. php部分
<html>
<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>
</body>  //在这里 post全局变量接受来自table.html发送来的txt文本数据
</html>  //并且通过html将其标记在屏幕之上

重要函数部分

mysqli_fetch_array()

函数在 MySQLi 扩展中用于从结果集中获取一行作为关联数组、数字索引数组、或两者兼有的混合数组。它的返回值类型取决于传递给函数的参数

//利用这个函数,我们可以判断存储的用户是否已经存在

  1. MYSQLI_ASSOC: 当设置为该常量时,会返回关联数组,键是列名。
  2. MYSQLI_NUM: 数字索引数组,键是从 0 开始的整数,对应的是查询结果的列顺序。
  3. MYSQLI_BOTH: 这样的话,将同时返回关联数组和数字索引数组,每行数据都有两个版本。

如果没指定模式,默认返回类型取决于结果集的第一行,后续行将以最初选择的模式继续获取。

Die()

PHP 中的一个内置函数,它用于立即停止脚本执行并返回给客户端指定的消息。当你在代码中遇到严重错误或者需要中断整个程序流程的情况时,可以使用 die() 函数输出错误信息,同时终止当前页面的加载,不会执行后续的代码

这个函数通常与错误消息一起使用,比如当数据库连接失败、文件找不到等异常情况发生时,你可以捕获到错误并使用 die() 来快速显示错误信息并结束脚本,以便于开发者调试。

Query

  HP中,query通常是指对数据库的操作。它涉及到使用SQL查询语言从数据表中获取、修改或删除信息。PHP提供了一些内置函数,如mysqli_query()PDO::query()等,用于连接到数据库并执行查询操作

->运算符

       ->是一个运算符,也被称为"箭头""指向"运算符,主要用于访问对象属性和方法。当你有一个对象,并想要通过该对象调用其内部的属性或方法时,会使用这个符号。

->在这里的作用相当于运算符.,但在访问对象属性时,它明确表示你是在操作一个对象而不是一个变量。如果尝试用.来访问属性,比如echo person.name,那么就会报错,因为person只是一个变量名,不是对象实例。

class Person {

public $name;

    public function greet() {

        return "Hello, my name is " . $this->name;

    }

}

$person = new Person();

$person->name = "Alice"; 将Alice放入类所对应的属性中去

echo $person->name;  // 输出 "Alice"

echo $person->greet();  // 输出 "Hello, my name is Alice"

MySQLi_connect($servsername,$username,$password,$dbnamr)

MySQLi_connect是php建立与MySQL数据连接的函数

Try

在许多编程语言中,try 关键字用于开始一个异常处理块。当一段可能会抛出错误或异常的代码块需要被执行时,通常将其包裹在 try 块内。如果在这段代码执行期间发生异常,那么控制权会被立即转移到与之匹配的 catch 块中,catch 块负责捕获并处理这个异常,避免程序崩溃。

try:

    # 可能会抛出异常的代码

    result = int(input("请输入一个整数: "))

except ValueError:

    # 处理 ValueError 异常

    print("输入的不是有效的整数!")

except

except 是编程中用于异常处理的关键字之一,通常与 try 配合使用。当你预期某段代码可能会抛出异常时,可以在 try 块之后编写一个或多个 except 子句。每个 except 子句会捕获特定类型的异常,并提供一个代码块来处理这个异常情况,而不是让程序因为异常而终止运行。

       try {

    // 可能会抛出异常的代码块

    throw new TypeError("Some error");

} catch (TypeError $e) {

    // 捕获并处理 TypeError 类型的异常

    echo "Caught a TypeError: " . $e->getMessage();

} except (Exception $e) {  // 抛出所有不是 TypeError 的异常

    // 这里不会捕获到 TypeError,因为已经明确在前一个 catch 中处理了

    echo "Caught an Exception: " . $e->getMessage();

}

Pdo

              PDO PHP 数据对象(PHP Data Objects)的缩写,是一个 PHP 扩展,用于提供一致的方式来访问多种数据库,包括 MySQLPostgreSQLSQLite 等。PDO 提供了一种安全、高效和面向对象的方式来操作数据库,它支持预处理语句(PreparedStatement),这有助于防止 SQL 注入攻击,并可以提高性能。

       $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);语句,这行代码的作用是将PDO的错误模式设置为异常模式,使用异常模式的好处在于,你可以通过try-catch语句块来捕获这些异常

try { 

    // 假设$dsn, $username, $password已经正确定义 

    $conn = new PDO($dsn, $username, $password); 

    // 设置错误模式为异常 

    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

 

    // 执行一些数据库操作 

} catch (PDOException $e) { 

    // 捕获异常并处理 

    echo "数据库错误:" . $e->getMessage(); 

    // 可以根据需要记录日志等 

}

Exec()

exec() 函数是一个非常有用的函数,它允许你在PHP脚本中执行一个外部程序,并且可以将外部程序的输出传递给PHP变量。这个函数在需要调用系统命令或执行外部脚本时特别有用。

escapeshellcmd()

       escapeshellcmd() 函数是 PHP 中用于转义 shell 命令字符串中可能会被解释为 shell 命令的特殊字符的函数。当你需要将用户输入或其他不可信的数据作为 shell 命令的一部分时,这个函数特别有用,因为它可以帮助防止命令注入攻击

       <?php 

$userInput = $_GET['cmd']; // 假设这是用户输入的命令名 

$safeCommand = escapeshellcmd($userInput); // 转义特殊字符 

exec("ls -l " . $safeCommand); // 现在安全多了 

?>

escapeshellcmd() 主要用于转义那些可能会被 shell 解释的特殊字符,但它不会验证命令的合法性或确保命令是安全的。

MySQ创建数据库

<?php
$servername = "localhost";
$username = "root";
$password = "202019利用变量存储基本信息

// Create connection
$conn = new mysqli($servername, $username, $password); 建立存储MySQL连接
// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}   $conn 对象的一个属性nnect_error,如果不为空,则链接出错

// Create database
$sql = "CREATE DATABASE myDB";
if ($conn->query($sql) === TRUE) {
  echo "Database created successfully";
else {

//查询sql中是否存在通过$sql命令创建的数据库

 echo "Error creating database: " . $conn->error;
}
$conn->close();


?>

//利用PDO创建数据库

<?php

$servername=”localhost”;

$username=”root”;

$password=”202019”;

       Try {

//尝试一个可能会出错的程序

              $conn=newPDO(“mysql:host=$servername”,$username,$password);

//set th PDO error mode to exception

$conn->setAttribute(PDD::ATTR_ERRORMODE, PDD::ERRMOD_EXCEPTION);

$sql=”crate database mytest”;

$conn->exec($sql); //允许利用外部的程序

       Echo “Database created successfully<br>”;}

Catch(PDDException $e){  //将错误信息放入$e

              Echo $sql . “<br>”.$e->getMessage();

}

?>

}

相关文章:

php数据库链接

Php超全局变量 GET 和 POST 都创建一个数组&#xff08;例如 array&#xff08; key1 > value1&#xff0c; key2 > value2&#xff0c; key3 > value3&#xff0c; ...&#xff09;&#xff09;。此数组包含键/值对&#xff0c;其中 键是表单控件的名称&#xff0c;…...

python+vue3+onlyoffice在线文档系统实战20240726笔记,左侧菜单实现和最近文档基本实现

解决右侧高度过高的问题 解决方案&#xff1a;去掉右侧顶部和底部。 实现左侧菜单 最近文档&#xff0c;纯粹文档 我的文档&#xff0c;既包括文件夹也包括文件 共享文档&#xff0c;别人分享给我的 基本实现代码&#xff1a; 渲染效果&#xff1a; 简单优化 设置默认菜…...

vue中的nexttrick

Vue.js 是一个用于构建用户界面的渐进式框架&#xff0c;它允许开发者通过声明式的数据绑定来构建网页应用。在 Vue 中&#xff0c;nextTick 是一个非常重要的 API&#xff0c;它用于延迟回调的执行&#xff0c;直到下次 DOM 更新循环之后。 为什么使用 nextTick&#xff1f; …...

【BUG】已解决:ModuleNotFoundError: No module named ‘requests‘

ModuleNotFoundError: No module named ‘requests‘ 目录 ModuleNotFoundError: No module named ‘requests‘ 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&a…...

深入理解JS中的发布订阅模式和观察者模式

发布/订阅模式(Publish/Subscribe)和观察者模式(Observer Pattern)在概念上非常相似,都是用于实现对象之间的松耦合通信。尽管它们在实现细节和使用场景上有所不同,但核心思想是相通的。 观察者模式 直接通信:在观察者模式中,观察者(Observer)直接订阅主题(Subject…...

网站IPv6支持率怎么检测?

在当今数字化的时代&#xff0c;IPv6的推广和应用已经成为网络发展的重要趋势。IPv6拥有更大的地址空间、更高的安全性和更好的性能&#xff0c;对于满足日益增长的网络需求至关重要。对于网站所有者和管理员来说&#xff0c;了解其网站对IPv6的支持率是评估网站性能和兼容性的…...

react中简单的配置路由

1.安装react-router-dom npm install react-router-dom 2.新建文件 src下新建page文件夹&#xff0c;该文件夹下新建login和index文件夹用于存放登录页面和首页&#xff0c;再在对应文件夹下分别新建入口文件index.js&#xff1b; src下新建router文件用于存放路由配置文件…...

RocketMQ消息短暂而又精彩的一生(荣耀典藏版)

目录 前言 一、核心概念 二、消息诞生与发送 2.1.路由表 2.2.队列的选择 2.3.其它特殊情况处理 2.3.1.发送异常处理 2.3.2.消息过大的处理 三、消息存储 3.1.如何保证高性能读写 3.1.1.传统IO读写方式 3.2零拷贝 3.2.1.mmap() 3.2.2sendfile() 3.2.3.CommitLog …...

Linux中的文件操作

linux中exec*为加载器&#xff0c;可以将程序加载到内存。 main()函数也是函数&#xff0c;也要被调用&#xff0c;也要被传参 故在一个程序中exec*系列的函数先被执行 程序替换中execve是系统调用&#xff0c;其他的都是封装。 进程程序替换 1.创建子进程的目的&#xff1…...

[排序]hoare快速排序

今天我们继续来讲排序部分&#xff0c;顾名思义&#xff0c;快速排序是一种特别高效的排序方法&#xff0c;在C语言中qsort函数&#xff0c;底层便是用快排所实现的&#xff0c;快排适用于各个项目中&#xff0c;特别的实用&#xff0c;下面我们就由浅入深的全面刨析快速排序。…...

freertos的学习cubemx版

HAL 库的freertos 1 实时 2 任务->线程 3 移植 CMSIS_V2 V1版本 NVIC配置全部是抢占优先级 第四组 抢占级别有 0-15 编码规则&#xff0c; 变量名 &#xff1a;类型前缀&#xff0c; c - char S - int16_t L - int32_t U - unsigned Uc - uint8_t Us - uint…...

PyQt 信号与槽功能

PyQt 信号与槽功能 基本概念&#xff1a;在 PyQt 中&#xff0c;信号&#xff08;Signal&#xff09;与槽&#xff08;Slot&#xff09;是一种用于对象之间通信的机制。信号可以由一个对象发出&#xff0c;而槽是用于接收信号并执行相应操作的函数。 信号 信号是在 PyQt 的类…...

navicat premium安装和破解

https://blog.csdn.net/qq1031893936/article/details/90264688 提示信息 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn...

OSI七层模型

OSI&#xff08;Open System Interconnect&#xff09;&#xff0c;即开放式系统互连。 该体系结构标准定义了网络互连的七层框架&#xff08;物理层、数据链路层、网络层、传输层、会话层、表示层和应用层 &#xff09;&#xff0c;即OSI开放系统互连参考模型。 应用层 为用…...

Qt自定义MessageToast

效果&#xff1a; 文字长度自适应&#xff0c;自动居中到parent&#xff0c;会透明渐变消失。 CustomToast::MessageToast(QS("最多添加50张图片"),this);1. CustomToast.h #pragma once#include <QFrame>class CustomToast : public QFrame {Q_OBJECT pub…...

自动化测试 pytest 中 scope 限制 fixture使用范围!

导读 fixture 是 pytest 中一个非常重要的模块&#xff0c;可以让代码更加简洁。 fixture 的 autouse 为 True 可以自动化加载 fixture。 如果不想每条用例执行前都运行初始化方法(可能多个fixture)怎么办&#xff1f;可不可以只运行一次初始化方法&#xff1f; 答&#xf…...

软件-vscode-plantUML-drawio

文章目录 vscode基础命令 实操1. vscode实现springboot项目搭建 &#xff08;包括spring data jpa和sqlLite连接&#xff09; PlantUMLDrawio基础实操 vscode 基础 命令 启动mysql命令 docker run --name mysql-container -e MYSQL_ROOT_PASSWORD123456 -p 3306:3306 -d my…...

Python爬虫实战案例(爬取图片)

爬取图片的信息 爬取图片与爬取文本内容相似&#xff0c;只是需要加上图片的url&#xff0c;并且在查找图片位置的时候需要带上图片的属性。 这里选取了一个4K高清的壁纸网站&#xff08;彼岸壁纸https://pic.netbian.com&#xff09;进行爬取。 具体步骤如下&#xff1a; …...

智慧工地视频汇聚管理平台:打造现代化工程管理的全新视界

一、方案背景 科技高速发展的今天&#xff0c;工地施工已发生翻天覆地的变化&#xff0c;传统工地管理模式很容易造成工地管理混乱、安全事故、数据延迟等问题&#xff0c;人力资源的不足也进一步加剧了监管不到位的局面&#xff0c;严重影响了施工进度质量和安全。 视频监控…...

ASP.NET中的六大对象有哪些?以及各自的功能以及使用方式

在ASP.NET Web Forms中&#xff0c;并没有严格意义上的“六大对象”&#xff0c;但通常我们指的是与HTTP请求和响应处理紧密相关的几个内置对象。以下是这些对象及其功能、使用方式以及简单的实现源码示例&#xff1a; Response对象 功能&#xff1a;用于向客户端发送HTTP响应…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...