<?php /** * Created by PhpStorm. * User: yanjin * Date: 2021/6/26 * Time: 10:04 */ $dbms='mysql'; //数据库类型 $host='localhost'; //数据库主机名 $dbName='spider'; //使用的数据库 $user='root'; //数据库连接用户名 $pass='root'; //对应的密码 $dsn="$dbms:host=$host;dbname=$dbName"; try { // $dbh = new PDO($dsn, $user, $pass); //初始化一个PDO对象 // echo "连接成功<br/>"; /*你还可以进行一次搜索操作 foreach ($dbh->query('SELECT * from FOO') as $row) { print_r($row); //你可以用 echo($GLOBAL); 来看到这些值 } */ // $dbh = null; $dbh = new PDO($dsn, $user, $pass); $dbh->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE , PDO::FETCH_ASSOC ); } catch (PDOException $e) { die ("Error!: " . $e->getMessage() . "<br/>"); } //默认这个不是长连接,如果需要数据库长连接,需要最后加一个参数:array(PDO::ATTR_PERSISTENT => true) 变成这样: // $db = new PDO($dsn, $user, $pass, array(PDO::ATTR_PERSISTENT => true));
tp5,第二个数据库连接
public function index() { $db = [ // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => 'rm.mysql.rds.aliyuncs.com', //'hostname' => 'rm.mysql.rds.aliyuncs.com', // 数据库名 'database' => 'kehu', // 用户名 'username' => 'kehu', // 密码 'password' => 'SHpw', // 端口 'hostport' => '3306', // 连接dsn 'dsn' => '', // 数据库连接参数 'params' => [], // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => '', // 数据库调试模式 'debug' => true, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器) 'deploy' => 0, // 数据库读写是否分离 主从式有效 'rw_separate' => false, // 读写分离后 主服务器数量 'master_num' => 1, // 指定从服务器序号 'slave_no' => '', // 自动读取主库数据 'read_master' => false, // 是否严格检查字段是否存在 'fields_strict' => true, // 数据集返回类型 'resultset_type' => 'array', // 自动写入时间戳字段 'auto_timestamp' => false, // 时间字段取出后的默认时间格式 'datetime_format' => 'Y-m-d H:i:s', // 是否需要进行SQL性能分析 'sql_explain' => false, ]; $list = Db::connect($db) -> name('rockphp_live_kj') -> where('id', '>', 0) -> order('id', 'DESC') //-> page($page, 50) -> limit(12) -> select(); //dump($list);die(); //$list = json_encode($list,true); $this->assign('list',$list); return view(); }
mysql 主从复制的函数问题
log_bin_trust_function_creators = 1
linux: top命令的内存使用,virt和res
https://blog.csdn.net/liu_sisi/article/details/88633673
php psr4规范
php psr4规范
参考文章:
1、类、方法、常量的定义和副操作(输出结果,处理数据)只能同时存在一种
2、命名空间和类必须遵循PSR-4自动加载器标准。(大驼峰,文件名和命名空间大小写一致)
3、类、成员方法大括号要单独一行
4、类名采用大驼峰,变量、方法名、函数名采用小驼峰,常量采用大写+下划线
5、控制语法小括号外侧1个空格,第一个大括号跟在小括号同行
6、php文件以<?php开头,代码最后空一行,?>不写
7、缩进采用4个空格
8、函数,方法的多个参数,逗号后要留1个空格
9、关键字小写
10、每一行不超过80个字符,结尾不要有空格
11、文件最后留一行空格
12、必要注释和空行,提高可读性
————————————————
版权声明:本文为CSDN博主「古月的博客」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_34345149/article/details/122260379
php:get_file_contents的json获取失败
访问xxx路径会返回json格式的数据,简单点,我用file_get_contents进行获取,发现解析不出来,显示是string类型数据,非json格式,也就是个格式不对。
但是我直接拿路径返回的数据解析是ok的,也就是说file_get_contents获取的数据有所不同。
后来查了下资料,提示说file_get_contents得到的数据前面有三个看不到的字符,所以代码修改如下,仅供参考:
$url = “xxx”; //请求的路径
$result = substr(file_get_contents($url),3);
$result = json_decode($result);
return $result;
tp5的exp查询
where(’id’,’EXP’,‘IN (1,2,3,4,5)’)
查询的条件不会被当成字符串,所以后面的查询条件可以使用任何SQL支持的语法,包括使用函数和字段名称。
代码片断:js:tab切换
<code></code>
<div class=”gzzxq_toub-two-row”>
<div class=”item active”>专利</div>
<div class=”item”>论文</div>
<div class=”item”>成果</div>
<div class=”item”>新品种</div>
<div class=”item”>新技术引进</div>
<div class=”item”>新材料</div>
<div class=”item”>其他</div>
</div>
<div class=”main “>{volist name=”research_list” id=”item”}
{if empty($item)}
<div class=”mains{$key+1}” style=”display: none;”><a href=”#”>暂无科研产出</a></div>
{else}
<div class=”mains{$key+1}”>
<div class=”gzzxq-main-nr”>
<ul class=”gzzxq-main-nr_list”>
<li style=”list-style-type: none;”>
<ul class=”gzzxq-main-nr_list”>{volist name=”item” id=”iitem”}
<li><a href=”#”>{$iitem.biaoti}</a></li>
</ul>
</li>
</ul>
{/volist}
</div>
</div>
{/if}
{/volist}
<code>
<script>
window.onload=chengjiu();
function chengjiu(){
console.log($(“.main>div:first-child”));
$(“.main>div:first-child”)[0].style.cssText = “display:block;”;
$(‘.gzzxq_toub-two-row .item’).click(function () {
$(‘.gzzxq_toub-two-row .item’).removeClass(‘active’)
$(this).addClass(‘active’)
// if($(this))
// if($(“.main div”)){
// console.log($(“.main>div”)[0].style.cssText = “display:none”);
// };
$(“.main>div”).hide()
$(“.main>div”).eq($(this).index()).show()
// console.log($(“.main>div”).eq($(this).index()))
})
$(“.center-top-rows-span1″).each(function () {
var str = $(this).html();
var subStr = str.substring(0, 16);
$(this).html(subStr + (str.length > 16 ? ‘…’ : ”));
});
}
</script>
docker 资料
1清理docker不用的镜像
docker ps -a,可以查到docker的容器id
docker rm 容器id #删掉容器
docker rmi 镜像id #删掉镜像id,释放空间
20220506
如果list是常量,则可以直接用IN, 否则要用find_in_set()函数。
MySQL手册中find_in_set函数的语法解释:
FIND_IN_SET(str,strlist)
str 要查询的字符串
strlist 字段名 参数以”,”分隔 如 (1,2,6,8,10,22)
查询字段(strlist)中包含(str)的结果,返回结果为null或记录
假如字符串str在由N个子链组成的字符串列表strlist 中,则返回值的范围在 1 到 N 之间。 一个字符串列表就是一个由一些被 ‘,’ 符号分开的子链组成的字符串。如果第一个参数是一个常数字符串,而第二个是type SET列,则FIND_IN_SET() 函数被优化,使用比特计算。 如果str不在strlist 或strlist 为空字符串,则返回值为 0 。如任意一个参数为NULL,则返回值为 NULL。这个函数在第一个参数包含一个逗号(‘,’)时将无法正常运行。