以**** 结束
$开头
变量名必须以字母或者下划线字符开始
变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
变量名不能包含空格
当一个函数完成时,它的所有变量通常都会被删除。
在第一次声明变量时使用 static 关键字,让局部变量不被删除。
有5种
String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型)
Array(数组), Object(对象), NULL(空值)。
数组和字典要用print_r输出
$a1=array('1',1,'aaa');
$a4=array('x'=>1,'b'=>'2');
print_r($a1);
print_r($a4);
常量是一个简单值的标识符。该值在脚本中不能改变。(在整个脚本中都能使用)
一个常量由英文字母、下划线和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。
使用 define() 函数设置常量
使用 const
关键字来定义
这些常量无需使用define()函数定义,可直接在程序中使用
FILE(FILE前后分别是两个下画线):当前正在处理的脚本文件名,若使用在一个被引用的文件中(include或require),那么 它的值就是被引用的文件,而不是引用它的那个文件。(脚本的位置)
LINE(LINE前后分别是两个下画线):正在处理的脚本文件的当前行数。(行数)
PHP_VERSION:当前PHP预处理器的版本,如5.4.16。
PHP_OS: PHP所在的操作系统的类型。如Linux。
TRUE:表示逻辑真。FALSE:表示逻辑假。NULL:表示没有值或值不确定。
DIRECTORY_SEPARATOR: 表示目录分隔符,UNIX或Linux操作系统环境时的值为“ / ”, Window操作系统环境时的值为 “ ** ”。
整数类型:保存整数数值(范围限制),4个字节存储数据。PHP中默认为有符号。
在PHP中提供四种整形的定义方式,十进制定义,二进制定义,八进制定义和十六进制定义
$age=18;
echo decbin($age);//二进制
$a=0b10010;//二进制变整型(在外面加0b)
echo $a;
$a = 120 //十进制
$a = 0b110 //二进制
$a = 0120 //八进制
$a = 0x120 //十六进制
decbin() // 十进制转二进制
decoct() // 十进制转八进制
dechex() // 十进制转十六进制
bindec() // 二进制转十进制
bin2hex() //二进制转十六进制
字符串变量用于存储并处理文本。
双引号里面可以插入变量
单引号里面不行
$name='你好';
$str='我是小学生 $name 今年10岁';
$str2="$name你是谁";
echo $str;
echo $str2;
点号作用是把字符串连接
strlen():计算字符串长度
echo "一共有".strlen($str)."字符";
trim():去除两边空格
echo trim($str);
strpos:查找字符串
substr:查找字符串(有头有尾)
echo strpos($str,'字符串');
echo substr($str,strpos($str,'字符串'),strpos($str,'字符串'));
md5:将数字md5加密
echo md5($a);
[]:取字符(起始是0)
$a='12132';
echo $a[0];
for ($i=0;$i<strlen($a);$i++){
echo $a[$i];
}
替换(把1替换0)
$str='123 ';
echo str_replace('1','0',$str);
数值数组 - 带有数字 ID 键的数组(正常数组)
关联数组 - 带有指定的键的数组,每个键关联一个值(array2)
多维数组 - 包含一个或多个数组的数组(数组里加数组)
array() 函数用于创建数组
用[]的形式也可以
$array4=['a','b','c'];
$array1=array('a','b','c');
$array2=array('a1'=>'php','a2'=>'java','a3'=>'python',$array1);
print_r($array1);
print_r($array2);
count——数组的数量
echo count($array1);
foreach ($array1 as $value){
// echo $key.'----'.$value.'
';
echo $value;
}
for($i=0;$i<=count($array1);$i++){
echo $array1[$i].'';
}
sort() - 对数组进行升序排列
rsort() - 对数组进行降序排列
asort() - 根据关联数组的值,对数组进行升序排列
ksort() - 根据关联数组的键,对数组进行升序排列
arsort() - 根据关联数组的值,对数组进行降序排列
krsort() - 根据关联数组的键,对数组进行降序排列
echo输出不了
sort($array1);
rsort($array1);
print_r($array1);
$array2=array('a1'=>'php','a2'=>'java','a3'=>'python');
$array1=array('a','b','c');
$array3=array($array1,$array2);
print_r($array3);
$array1['a']='d';//增加
print_r($array1);
$array1[0]='e';//更改数值
print_r($array1);
array_splice(数组,位置,删除几个,增加元素)
array_splice($array1,1,0,'ddd');
print_r($array1);
unset($array1[0]);//删除指定位置
array_pop($array2);//删除最后一个
print_r($array2);
echo array_search('php',$array2);//寻找对应的key
echo array_key_exists('a1',$array2);//寻找key是否存在,是返回1
array_unique() 去掉相同的值
print_r(array_unique($array1));
in_array — 检查数组中是否存在某个值 如果找到指定的值则返回 TRUE,否则返回 FALSE 。区分大小写
echo in_array('a1',$array1);
var_dump(1==2?'xxx':'zzz');
控制语法的语句结构和其他大多数语言结构相同,有以下两类:
if 语句 - 在条件成立时执行代码
$a=1;
$b=2;
if($a>$b){
echo 'a';
}else{
echo 'b';
}
if…else语句 - 在条件成立时执行一块代码,条件不成立时执行另一块代码
if…elseif…else 语句 - 在若干条件之一成立时执行一个代码块
if($a==3){
echo 'a';
}elseif($a==4) {
echo 'b';
}elseif($a==5){
echo 'c';
}else{
echo 'd';
}
switch 语句 - 在若干条件之一成立时执行一个代码块
break停止,否则继续执行
switch ($a) {
case 1;
echo 2;
case 2;
echo 1;
break;
default;
echo 3;
}
while - 只要指定的条件成立,则循环执行代码块
$i=0;
while(true){
echo $i++.'';
if($i>=999){
continue;
}
}
do…while - 首先执行一次代码块,然后在指定的条件成立时重复这个循环
for - 循环执行代码块指定的次数
foreach - 根据数组中每个元素来循环代码块
break语句*用于终止本次循环
continue语句的作用是跳出本次循环,接着执行下一次循环
函数名能够以字母或下划线开头(非数字)。
echo优先级比name高
function a($name='a')
{
echo $name;
}
echo a(111);
要将匿名函数"赋值"给变量
$a=function (){
return 1;
};
echo $a();
call_user_func(调用函数,输入的参数)
function get_name($name)
{
return $name;
}
echo call_user_func('get_name','a');
PHP 有三种不同的变量作用域:
local(局部)
global(全局)
static(静态)
Local 和 Global 作用域
函数和全局之间不能互相访问,
但是用global之后可以访问
$a='全局变量';
function getName()
{
global $a;
echo $a;
}
getName();
用**$GLOBALS**变量也可以
$a='全局变量';
function getName()
{
// global $a;
echo $GLOBALS['a'];
}
getName();
静态
当函数完成后,会删除所有变量。static会保留变量
function getName()
{
static $a=1;
echo $a;
$a++;
}
getName();
getName();
对象的主要三个特性:
l 对象的行为:可以对对象施加那些操作,开灯,关灯就是行为。
l 对象的形态:当施加那些方法是对象如何响应,颜色,尺寸,外型。
l 对象的表示:对象的表示就相当于身份证,具体区分在相同的行为与状态下有什么不同。
class Person{
var $name;
var $age;
var $gender;
function setName($name)
{
$this->name = $name;
}
function getName(){
return $this->name;
}
}
$p1=new Person();
$p1->setName("John");
echo $p1->name;
echo $p1->getName();
__construct($name)
接收一个参数 $name
,并将其赋值给当前对象的 name
属性。现在可以在对象创建的同时完成属性的初始化(在创造对象的同时加入值John)
class Person{
var $name;
var $age;
var $gender;
function __construct($name)
{
$this->name = $name;
}
function getName(){
return $this->name;
}
}
$p1= new Person('aaaaa');
echo $p1->getName();
当PHP 脚本执行到最后一行时:
系统会自动进行 “舞台清理”:
$p2
会被销毁析构函数
__destruct
自动运行:
当对象删除时,destruct自动执行
class Person{
var $name;
var $age;
var $gender;
function __construct($name)
{
$this->name = $name;
}
function __destruct(){
echo $this->name;
}
}
$p2=new Person('John');
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的属性和方法,或子类从父类继承方法,使得子类具有父类相同的行为。(复制上一个类)
父类=基类
P1=Person
class Person{
var $name;
var $age;
function __construct($name,$age){
$this->name=$name;
$this->age=$age;
}
function getUser()
{
return "名字 $this->name 年龄 $this->age 岁";
}
}
/*$p1=new Person('John','20');
echo $p1->getUser();*/
class P1 extends Person
{
}
$p2=new P1('a','1');
echo $p2->getUser();
如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
(重写父类)
在P1里面可以修改父类的函数
class P1 extends Person
{
function getUser()
{
return "名字 $this->name ";
}
function run()
{
echo" $this->name 在睡觉";
}
}
PHP 对属性或方法的访问控制,是通过在前面添加关键字 public(公有),protected(受保护)或 private(私有)来实现的。
**public(**公有):公有的类成员可以在任何地方被访问。
public $name;
echo $p1->name;
protected(受保护):受保护的类成员则可以被其自身以及其子类和父类访问。
P1可以访问Person里的变量
class Person{
protected $name;
protected $age;
public function __construct($name,$age){
$this->name=$name;
$this->age=$age;
}
protected function getUser()
{
return "名字 $this->name 年龄 $this->age 岁";
}
}
class P1 extends Person
{
public function a1(){
echo $this->name."保护";
echo $this->getUser();
echo parent::getUser()
}
}
$p2=new P1('a','1');
$p2->a1();
用parent访问父类
echo parent::getUser()
private(私有):私有的类成员则只能被其定义所在的类访问。
(私有的只能在类里自己使用)
例子(三种类)
class Person{
//在类中三种都可以访问
public $a="publid";
protected $b="protected";
private $c="private";
public function print1(){
echo $this->a.'';
echo $this->b.'';
echo $this->c.'';
}
public function a1(){
echo 'public';
$this->a2();
$this->a3();
}
protected function a2(){
echo 'protected';
}
private function a3(){
echo 'private';
}
}
$p1=new Person();
$p1->a1();
类属性必须定义为公有,受保护,私有之一。如果用 var 定义,则被视为公有。
使用接口(interface),可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。
接口是通过 interface 关键字来定义的,就像定义一个标准的类一样,但其中定义所有的方法都是空的。
接口中定义的所有方法都必须是公有,这是接口的特性。
要实现一个接口,使用 implements 操作符。类中必须实现接口中定义的所有方法,否则会报一个致命错误。类可以实现多个接口,用逗号来分隔多个接口的名称。
implements
的作用
implements
关键字用于让一个类去实现一个或多个接口。当一个类使用 implements
实现某个接口时,这个类就必须实现该接口中定义的所有方法,否则该类必须被声明为抽象类。
interface Person{
const NAME='常量';
public function getName();
public function setName($name);
}
interface Person2{
public function setName2($name);
}
class p1 implements Person,Person2 {
public function setName($name){
echo "set_name".$name;
}
public function getName(){
echo "get_name";
}
public function setName2($name){
echo "set_name2".$name;
//一个类里可以有多个接口,但是少声明一个函数就会报错
}
}
$a = new p1();
echo $a->setName('df');
echo $a->getName('df');
常量的值必须是一个定值,不能是变量,类属性,数学运算的结果或函数调用。
任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。
抽象类不能实例化。
被定义为抽象的方法只是声明了其调用方式(参数),不能定义具体的功能。
继承一个抽象类的时候,子类必须定义父类中的所有抽象方法;另外,这些方法的访问控制必须和父类中一样(或者更为宽松)。
当抽象方法受保护时,子类可以是受保护或公有,而不是私有
abstract class Person{
abstract protected function get_name();
abstract protected function set_name($name);
public function run(){
echo 'run';
}
}
class p1 extends Person{
public $name;
function __construct($name){
$this->name = $name;
}
public function get_name(){
echo 'get_name'.$this->name;
}
public function set_name($name){
return 'set_name'.$name;
}
public function run(){
parent::run();
}
}
$a = new p1('a');
$a->get_name('a');
echo $a->set_name('a');
$a->run();
可以把在类中始终保持不变的值定义为常量。在定义和使用常量的时候不需要使用 $ 符号。
声明类属性或方法为 static(静态),就可以不实例化类直接访问。
静态属性不能通过一个类已实例化的对象来访问(但静态方法可以)。
由于静态方法不需要对象即可调用,所以伪变量 $this 在静态方法中不可用。
静态属性不可以由对象通过 -> 操作符来访问。
自 PHP 5.3.0 起,可以用一个变量来动态调用类。但该变量的值不能为关键字 self,parent 或 static。
直接用Person::$name;
class Person{
public static $name='aa';
public static function getString(){
return 'getString'.self::$name;
}
}
echo Person::getString();
echo Person::$name;
PHP 5 新增了一个 final 关键字。如果父类中的方法被声明为 final,则子类无法覆盖该方法。如果一个类被声明为 final,则不能被继承。(父类函数唯一)
要执行父类的构造方法,需要在子类的构造方法中调用 parent::__construct()
class Person{
public $name='aa';
public function getString(){
return 'getString';
}
public function __construct()
{
echo "父类构造";
}
}
class c1 extends Person{
public function getString(){
echo parent::getString();
return 'getString';
}
public function __construct()
{
parent::__construct();
echo "子类构造";
}
}
$a = new c1();
u $GLOBALS 一个包含了全部变量的全局组合数组。变量的名字就是数组的键。
输出所有变量
$a='name';
print_r($GLOBALS);
$_SERVER 一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组
输出所有信息的数组
foreach ($_SERVER as $key => $value) {
echo "[$key]=> $value ";
}
$_REQUEST 用于收集HTML表单提交的数据。
它可以获取 cookie get post
<form method="post">
<input name="username" type="text">
<input name="sub" value="sub" type="submit">
</form>
<?php
print_r($
$_POST 广泛应用于收集表单数据,在HTML form标签的指定该属性:"method=“post”。
同上
$_GET 广泛应用于收集表单数据,在HTML form标签的指定该属性:"method=“get”。
enctype="multipart/form-data"
是专门为文件上传设计的编码方式,它允许表单数据以二进制形式进行传输,确保文件能够正确地被上传到服务器。当表单中包含文件上传字段时,必须使用这种编码方式。
$_FILES
<form method="post" enctype="multipart/form-data">
<input name="file" type="file"/>
<input name="sub" value="sub" type="submit"/>
</form>
<?php
print_r($_FILES["file"]["name"]);
?>
u $_ENV
u $_COOKIE
u $_SESSION
插入php文件
include 'functions.php';
include 和 require 语句是相同的,除了错误处理方面:
require 会生成致命错误(E_COMPILE_ERROR)并停止脚本
include 只生成警告(E_WARNING),并且脚本会继续
$myfile=fopen('a.txt','r');
echo fread($myfile,filesize('a.txt'));
fclose($myfile);
fgetc() 函数用于从文件中读取单个字符。
fgets() 函数用于从文件读取单行
$myfile=fopen('a.txt','r');
echo fgets($myfile);//只能取一行
feof() 函数检查是否已到达文件末尾
$myfile=fopen('a.txt','r');
while(!feof($myfile)){
echo md5(fgets($myfile))."";
}
php文件重命名:函数rename()
rename('a.txt', 'b.txt');
php文件复制:函数copy()
copy('b.txt', 'a.txt');
php文件删除:函数unlink()
unlink('a.txt')
file_exists() 判断文件是否存在
if(file_exists('1.txt')){
echo 'yes';
}else{
echo 'no';
}
is_file() 是否为文件
is_file('1.txt')
$myfile="1.txt";
file_exists($myfile) or die("no");
echo $myfile."存在大小".filesize($myfile)."kb ";
if (is_readable($myfile)) {
echo "文件可读";
}else{
echo "文件不可读";
}
if (is_executable($myfile)) {
echo "文件可执行";
}else{
echo "文件不可执行";
}
if (is_writable($myfile)) {
echo "文件可写";
}else{
echo "文件不可写";
}
echo "创作时间".date("Y-m-d H:i:s",filemtime($myfile))."";
echo "修改时间".date("Y-m-d H:i:s",filemtime($myfile))."";
echo "访问时间".date("Y-m-d H:i:s",filemtime($myfile))."";
目录操作
新建目录:mkdir(路径,权限,递归创建)
$name="myhack";
mkdir($name);
删除目录:rmdir()
rmdir('file3');
移动(改名):rename()
rename($name,'file3');
获取目录内容:
目录句柄 = opendir() //打开目录
文件名 = readdir(目录句柄)
依次读取文件名,读取不到则返回//打开目录
closedir() //关闭目录
当前目录**.** 上级目录用**…**
递归读取目录内容**:**
遍历C盘文件
$path="C:/";
function tree($path)
{
$dh = opendir($path);
while(($file = readdir($dh)) !== false){
$dirpath="$path$file";
if(is_dir($dirpath) && $file != "." && $file != ".."){
echo "目录$dirpath ";
if (is_readable($dirpath)){
tree($dirpath);
}
}else{
if($file != "." && $file != ".."){
echo "文件$dirpath ";
}
}
}
closedir($dh);
}
PHP 命名空间可以解决以下两类问题:
1.代码与PHP内部的类/函数/常量之间的名字冲突。
2.为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,以提高源代码的可读性。
命名空间(可以理解为创建文件夹)
定义:命名空间namespace,是指人为的将内存进行分隔,让不同内存区域的同名结构共存,从而解决在大型项目中可能出现的重名结构的问题
语法:namespace 空间名
作用:不同的空间可以有同名的结构,如:类
空间元素:函数,常量,类,不包括变量!!
子空间(子文件夹)
定义:命名空间内部再划分一个命名空间,让每个小空间独立起来
语法:
namespace 空间名
namespace 空间名\子空间
命名空间访问 (url)
*非限定名称访问*:访问自己命名空间的元素
*限定名称访问*:使用自己当前的子空间名字+ \ + 元素名字
*完全限定名称访问*:\ + 全局空间 + \ + 元素名字
注:任何空间元素访问,只针对函数,类,常量
php//本空间
namespace mydemo;
include '4.php';
const NAME="a.";
function getName(){
return 'getName.';
}
class Dog{
static function run(){
return 'dog.';
}
}
echo NAME;
echo getName();
echo dog::run();//非限定名称(本空间)
echo a\NAME;//限定名称(子空间)
echo \mydemo\NAME;//完全限定名称
php//子空间
namespace mydemo\a;
const NAME="a_a";
function getName(){
return 'getName_a';
}
class Dog{
static function run(){
return 'dog_a';
}
}
全局空间(C盘)
如果定义了命名空间,非限定名称的寻找系统常量的方式:
首先:在自己的空间内找
然后:如果找不到元素
系统常量–>进入全局空间寻找
系统类 --> 不会自动进入全局空间寻找,而是会报错(看不懂)
1.空间引入方式:use关键字
引入类:use 空间名\类名
引入函数:use function 空间名\函数名
引入常量:use const 空间名\常量名
2.当引入元素时重名,通过 as 来起别名
use 空间名\类名 as 别名
3.引入多个元素
use 空间名{
类名,
function 函数名,
const 常量
}
引入空间
use 空间名
namespace one;
include '4.php';
//use引用整个命名空间
use mydemo\b as aa;
echo aa\NAME;
//引入类
use mydemo\b\Dog;
$a=new Dog();
echo $a->say();
//引入常量
use const mydemo\b\NAME;
echo NAME;
//引入函数
use function mydemo\b\getName;
echo getName();
$b=new \mydemo\b\Dog();
echo $b->say();
正则表达式有三个作用:
匹配,也常常用于从字符串中析取信息。
用新文本代替匹配文本。
将一个字符串拆分为一组更小的信息块。
PCRE库函数中,正则匹配模式使用分隔符与元字符组成,分隔符可以是非数字、非反斜线、非空格的任意字符。经常使用的分隔符是正斜线(/)、hash符号(#) 以及取反符号(~)
元字符是用于构造规则表达式的具有特殊含义的字符。如果要在正则表达式中包含元字符本身,必须在其前加上”\”进行转义
进行正则表达式匹配,并且只匹配一次
preg_match('/a/', $name)
preg_match() |
匹配一次(找到就停) |
---|
preg_match_all() |
匹配所有符合条件的内容 |
---|
*
a*
会匹配空字符串(因为零次出现)或者多个连续的 a
(比如 “aa”、“aaa” 等)。(任何字符都会匹配)a*
可以匹配 ""
、a
、aa
、aaa
等。+
a+
只能匹配 a
、aa
、aaa
等,不能匹配空字符串。?
a?
可以匹配 ""
或 a
。|
a|b
可以匹配 a
或 b
。^
^a
只会匹配以 a
开头的字符串。$
a$
只会匹配以 a
结尾的字符串。[]
[abc]
会匹配 a
、b
或 c
。/[a-z0-9]{32}/
可以结合{}使用,代表查找32次
[^]
^
,表示“不是里面的字符”。[^abc]
会匹配除了 a
、b
、c
之外的任何字符。{m}
m
次。m
次。a{3}
会匹配 aaa
。{m,n}
m
次,最多出现 n
次。m
和 n
之间。a{2,4}
会匹配 aa
、aaa
或 aaaa
。{m,}
m
次。m
次。a{2,}
会匹配 aa
、aaa
、aaaa
等。()
(abc)+
会匹配 abc
重复一次或多次。.
a.b
会匹配 aab
、acb
等。preg_match()
的第三个参数 $p
是一个数组,用于存储匹配的详细信息
^ag$(必须以a开头以g结尾)
/i(不区分大小写)
$name='aahjg';
if (preg_match('/A/i', $name,$p)
\d
:匹配一个数字字符
\D
:匹配一个非数字字符
\f
:匹配一个换页符
\n
:匹配一个换行符
\r
:匹配一个回车符
\s
:匹配任何空白字符
\S
:匹配任何非空白字符
\t
:匹配一个制表符
\v 匹配一个垂直制表符
\w 匹配所有单词字符加下划线
\W 匹配所有不是单词字符和下划线
顺序 元字符 说明
1 () 模式单元
2 ? +{}* 重复匹配
3 ^$ 边界限制
4 | 模式选择
$conn->query("SQL语句")
表示调用 $conn
对象的 query()
方法执行 SQL。
.
操作符(如 obj.method()
)。.
操作符(如 obj.method()
)。->
。$servername = "localhost";
$username = "root";
$password = "root";
$conn = new mysqli($servername, $username, $password);
//servername代表连接位置
connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// Create database
$sql = "CREATE DATABASE myDB";
if ($conn->query($sql) === TRUE) {
echo "Database created successfully";
} else {
echo "Error creating database: " . $conn->error;
}
$conn->close();
?>
$servername = "localhost";
$username = "root";
$password = "root";
$dbname="mydatabase";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
echo "Connection failed: " . $conn->connect_error;
}else{
echo 'Connected successfully';
}
$sql = "CREATE TABLE users (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(30) NOT NULL,
password VARCHAR(30) NOT NULL,
email VARCHAR(50)
);";
if ($conn->query($sql) === TRUE) {
echo "table created successfully";
} else {
echo "Error creating database: " . $conn->error;
}
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "mydatabase";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
echo "Connection failed: " . $conn->connect_error;
} else {
echo 'Connected successfully';
}
$sql = "INSERT INTO users (username, password, email) VALUES ('asdf', '122', 'ads')";
if ($conn->query($sql) === TRUE) {
echo "insert successfully";
} else {
echo "Error insert: " . $conn->error;
}
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "mydatabase";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
echo "Connection failed: " . $conn->connect_error;
} else {
echo 'Connected successfully';
}
$sql = "select * from users where id=".$_GET['id'];
$result = $conn->query($sql);
if ($conn->query($sql)==true) {
}else{
echo "mysqli error",$conn->error;
}
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "id: ". $row["id"]. " - Name: ". $row["username"]. " " . $row["password"]." ".$row["email"]."
";
}
} else {
echo "0 results";
}
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "mydatabase";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
echo "Connection failed: " . $conn->connect_error;
} else {
echo 'Connected successfully';
}
$sql = "DELETE FROM users where id=".$_GET['id'];
$result = $conn->query($sql);
if ($conn->query($sql)==true) {
echo "删除成功";
}else{
echo "删除失败";
}
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "mydatabase";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
echo "Connection failed: " . $conn->connect_error;
} else {
echo 'Connected successfully';
}
$sql = "update users set username='a' where id=2";
if ($conn->query($sql) === TRUE) {
echo "update successfully";
} else {
echo "Error update: " . $conn->error;
}
$conn->close();
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "mydatabase";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
echo "Connection failed: " . $conn->connect_error;
} else {
echo 'Connected successfully';
}
$sql = "select * from users where id=".$_GET['id'];
$result = $conn->query($sql);
if ($conn->query($sql)==true) {
}else{
echo "mysqli error",$conn->error;
}
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "id: ". $row["id"]. " - Name: ". $row["username"]. " " . $row["password"]." ".$row["email"]."
";
}
} else {
echo "0 results";
}
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "mydatabase";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
echo "Connection failed: " . $conn->connect_error;
} else {
echo 'Connected successfully';
}
$sql = "DELETE FROM users where id=".$_GET['id'];
$result = $conn->query($sql);
if ($conn->query($sql)==true) {
echo "删除成功";
}else{
echo "删除失败";
}
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "mydatabase";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
echo "Connection failed: " . $conn->connect_error;
} else {
echo 'Connected successfully';
}
$sql = "update users set username='a' where id=2";
if ($conn->query($sql) === TRUE) {
echo "update successfully";
} else {
echo "Error update: " . $conn->error;
}
$conn->close();