笔记

$pdo=new PDO("mysql:127.0.0.1;dbname:user",$username,$pass);
$statment=$pdo->prepare($sql);
$statment->execute([]);
$statment->fetchAll();
$statment->rowCount();

$link = Mysql_connect(“localhost”,”root”,”123”) or die(“数据库连接失败!”);

Mysql_select_db(“db_test”,$link) or die(“选择数据库失败!”);

$sql = “select id,name,age,gender,phone,email from friend where age>20”;

$result = mysql_query($sql);

$count = mysql_num_rows($result);

While($row = mysql_fetch_assoc($result)){

Echo $row[‘id’];

….

}
$client=new swoole_client(SWOOLE_SOCK_TCP);
$client->on('connect',function(swoole_client $cli){});
$client->on('receive',function(swoole_client $cli,$data){});
$client->on('error',function(swoole_client $cli,$error){});
$client->on('close',function(swoole_client $cli){});
$client->connect('127.0.0.1',9501);
$fp=new stream_socket_client("tcp://....",$errno,$errstr,30);
fwrite($fp,'');
fread($fp,1024);
fclose($fp);

相对于C/S,B/S具有如下优势:

1、分布性:可以随时进行查询、浏览等业务

2、业务扩展方便:增加网页即可增加服务器功能

3、维护简单方便:改变网页,即可实现所有用户同步更新

4、开发简单,共享性强,成本低,数据可以持久存储在云端而不必担心数据的丢失。

一个动态网站服务器平台至少要包括:操作系统+Web服务器+应用程序服务+数据库

在这里插入图片描述

register_shutdown_function('handleFatal');

function handleFatal()
{
    $error = error_get_last();
    switch ($error['type'] ?? null) {
        case E_ERROR :
        case E_PARSE :
        case E_CORE_ERROR :
        case E_COMPILE_ERROR :
            $message = $error['message'] . PHP_EOL;
            if (isset($_SERVER['REQUEST_URI'])) {
                $message .= '[QUERY] ' . $_SERVER['REQUEST_URI'];
            }
            // log or send:
            // error_log($message);
            // $server->send($fd, $message);
            break;
    }
}

多个进程,一定不能共用连接。必须每个进程单独创建Redis、MySQL、PDO连接,其他的存储客户端同样也是如此。原因是如果共用1个连接,那么返回的结果无法保证被哪个进程处理。持有连接的进程理论上都可以对这个连接进行读写,这样数据就发生错乱了。

所以在多个进程之间,一定不能共用连接

在swoole_server中,应当在onWorkerStart中创建连接对象
在swoole_process中,应当在swoole_process->start后,子进程的回调函数中创建连接对象
本页面所述信息对使用pcntl_fork的程序同样有效

$serv = new swoole_server("0.0.0.0", 9502);

//必须在onWorkerStart回调中创建redis/mysql连接
$serv->on('workerstart', function($serv, $id) {
    $redis = new redis;
    $redis->connect('127.0.0.1', 6379);
    $serv->redis = $redis;
});

$serv->on('receive', function (swoole_server $serv, $fd, $from_id, $data) { 
    $value = $serv->redis->get("key");
    $serv->send($fd, "Swoole: ".$value);
});

$serv->start();

require的执行速率比include快,因为不管页面有几个require,只会解释一次,include是页面有几个解释几次,include在包含的页面不存在或者有问题,会发出错误,但不影响执行,require则无法继续执行,require比require_once
快,因为它不判断文件是否已存在。

csrf(跨站点提交),xss(js脚本插入,htmlspecials),sql恶意注入(addslashes,预处理,** or 1=1)
在业界目前防御 CSRF 攻击主要有三种策略:验证 HTTP Referer 字段;在请求地址中添加 token 并验证;在 HTTP 头中自定义属性并验证。


<?php

$link = Mysql_connect(“localhost”,”root”,”123”) or die(“数据库连接失败!”);

Mysql_select_db(“db_test”,$link) or die(“选择数据库失败!”);

$sql = “select id,name,age,gender,phone,email from friend where age>20”;

$result = mysql_query($sql);

$count = mysql_num_rows($result);

While($row = mysql_fetch_assoc($result)){

Echo $row[‘id’];

….

}

Kibana简介和安装 https://www.jianshu.com/p/0ce405db9ceb /bin/kibana
ElasticSearch http://www.ruanyifeng.com/blog/2017/08/elasticsearch.html ./bin/elasticsearch
Logstash https://www.cnblogs.com/cjsblog/p/9459781.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值