yzc577亚洲城娱乐php-fpm中能实现数据库长连接吗

( yzc577亚洲城娱乐 )

能实现在php-fpm子进程中保持一个数据库连接,让该进程中每个请求都复用这一个连接吗?

当然。不过这是有PHP扩展来控制的,对使用PHP编程者来说是半透明的。也就是说,我们能够在数据库扩展的操作中选择开启长连接,但是否使用长连接以及长连接是否真的能够保持到进程结束,这是有扩展以及其他因素来决定的。

参考 @有明 的答案。

补充:

往往事实并不是那么乐观,PHP中的数据库长连接基本等于废物一样,最好还是自己实现。比如依托各种中间件等。最简单的可以自己写个脚本开始长连接然后用ab进行并发测试看看mysqlshow processlist

可以,比如MySQL,详见.

(看完/读完)这篇文章有何感想! yzc577亚洲城娱乐的分享…

yzc577亚洲城亚洲娱乐第一站mysql取模分表与分表

( yzc577亚洲城亚洲娱乐第一站 )

mysql取模分表还是没搞明白 假如三张表 是用什么数%3 那初次创建用户的这个数 假如用户注册了 第二次查询怎么还保证是这个数%3的值呢 求一个能看懂的解答

还有就是假如文章分表 我是根据什么依据分比较合适

用数据的唯一标识字段ID去模上你要分表的个数,文章分表也是一样。

我的猜想应该用户表和文章表的唯一标识应该是在插入数据之前生成号的,在根据对应要分表的基数求余数,然后在决定在那张表中添加数据。

不过我对那个数据表生成唯一标识的算法不知道怎么实现,比如电商平台中的订单id好像不是自动增长的,关于生成数据表唯一标识的算法,欢迎大神给我脑补脑补,感激不尽。

(看完/读完)这篇文章有何感想! yzc577亚洲城亚洲娱乐第一站的分享…

yzc577亚洲城娱乐博客系统数据库是怎么设计文章的数据结构的?

( yzc577亚洲城娱乐 )

我正在写一个单页博客应用,每篇文章的结构都不尽相同,各种一级二级标题。数据结构是如何设计的?

另外如果是后端把数据取出来拼接成html,这个逻辑能不能拿到前端做?有没必要?

可以用插件啊 比如UEditor 直接得到html部分 插入数据库

(看完/读完)这篇文章有何感想! yzc577亚洲城娱乐的分享…

yzc577亚洲城娱乐求xampp中mysql启动失败解决方法,在线等(不删除ibdata1 文件)

( yzc577亚洲城娱乐 )

错误提示:
11:35:17 [mysql] Error: MySQL shutdown unexpectedly.
11:35:17 [mysql] This may be due to a blocked port, missing dependencies,
11:35:17 [mysql] improper privileges, a crash, or a shutdown by another method.
11:35:17 [mysql] Press the Logs button to view error logs and check
11:35:17 [mysql] the Windows Event Viewer for more clues
11:35:17 [mysql] If you need more help, copy and post this
11:35:17 [mysql] entire log window on the forums
自己找的解决方案:
1.找到本地磁盘D:存放xampp的文件夹,点击打开文件夹
2.找到Mysql文件夹,点击打开
3.找到data文件夹,点击打开
4.找到 ibdata1 这个文件,并删除它
但是这样做的话自己的数据表就丢失了,所以想着不删除ibdata1那个文件的话怎么解决这问题呢?温柔一点

去找MySQL的日志,看看启动失败的具体原因

或者根据你提供的这些一条一条的检查,看看那个不符合

(看完/读完)这篇文章有何感想! yzc577亚洲城娱乐的分享…

yzc577亚洲城娱乐php 在值中找字串

( yzc577亚洲城娱乐 )

每個用戶有一個欄位叫做skills
可能是 哈囉,你好,再見,不錯,太棒了 但每個人都不太一樣
我要如何找出該欄位的字元
若他的skills欄位有 太棒了 則顯示checked..類似這樣?

補充

<? $skills = $SQLROW[skills];?>
 <? foreach$t as $key=>$value{  ?>
     <input type="checkbox" name="skills_profile[]" id="profile<? echo $key;?>" value="<? echo $value;?>"
        <? ifstrpos$skills,$value
  {
   echo checked;
  }
   ?>>
        <label for="profile<? echo $key;?>"><? echo $value;?></label>
        <? } ?>

明明有哈囉,你好,再見,不錯,太棒了
但是他卻只有 你好,再見,不錯,太棒了 有checked?
這是哪裡有問題?

没太看懂你的意思,不知道这是不是你要的

<?php
$sys_arr = explode,,哈囉,你好,再見,不錯,太棒了;
$skills = explode,,你好,再見;
foreach$sys_arr as $v{
    $ck = in_array$v,$skills? checked:;
    echo "<input type=checkbox value={$v}{$ck}>{$v}
";
}

把你回复的代码中的 strpos$skills,$value 这个判断改成 ifstrpos$skills,$value !== false 因为可能匹配位置为 0 的 skills

首先你要知道strpos函数返回的是什么:

strpos 函数查找字符串在另一字符串中第一次出现的位置。
返回字符串在另一字符串中第一次出现的位置,如果没有找到字符串则返回 FALSE。
注释:字符串位置从 0 开始,不是从 1 开始。

因为你只是 ifstrpos$skills,$value 所以,你的 哈囉 位置在 0
你需要改成 当然也可以换成其他写法

ifstrpos$skills,$value !== false

参考连接:
http://www.w3school.com.cn/ph…

strops返回 needle 存在于 haystack 字符串起始的位置独立于 offset。同时注意字符串位置是从0开始,而不是从1开始的。
如果没找到 needle,将返回 FALSE。

判断语句改成 ifstrpos$skills,$value !== false

strops函数

写sql语句时 select id from table where skills like %太棒了%

(看完/读完)这篇文章有何感想! yzc577亚洲城娱乐的分享…

yzc577亚洲城娱乐数据库莫名多了些奇怪的代码,是被SQL注入了吗?

( yzc577亚洲城娱乐 )

今天早上起来的时候发现数据库多了好几百条莫名其妙的数据,有点像代码。我查了下日志,是这样访问网站的,如下:

第一条: /Home/Office/manage/include/downfile.php?gFileName=/etc/passwd

第二条: /office/door//ucenter/admin/export

第三题:/fun/module/AIP/get_file.php?MODULE=/&ATTACHMENT_NAME=php&ATTACHMENT_ID=.._webroot/inc/oa_config
等等。

我这是被SQL注入了吗?

这已经不仅仅局限于SQL注入的范围了,攻击者已经在测试你的文件系统级别的安全性了。

例如第一条的目的是拉取服务器系统中的用户信息。第三条是希望获取网站的配置信息。

运维已经被开除了

你把第一个地址访问下 没问题 那就没问题 ,楼上说的吓死人
这个一多半是扫描软件扫的

2 看你的服务器是什么运营商 并且记录访问ip。比如你是阿里云服务器 那就再正常不过了 ,他会尝试扫描你的网站是否存在漏洞,然后你登录阿里平台就可以看到 哪个地方可能存在漏洞。这也是他这个功能的实现

这就比较尴尬了

密码也不在/etc/passwd里啊

被攻击而已,如果你使用了框架的话,可能框架有些漏洞,比如织梦CMS和ThinkPHP,这种链接只是嗅探,如果请求成功,而且达到了请求者的目的,比如下载了敏感文件,那请求者就知道你的网站有漏洞,就可以进行下一步的入侵了。

有这种请求不要害怕,就像你装了一把锁,总会有人用不同的钥匙去试一样,建议你自己访问这种链接看看结果,查漏补缺

删了吧,当我没说。

(看完/读完)这篇文章有何感想! yzc577亚洲城娱乐的分享…

www.yzc577.comphp无法获取表单数据

( www.yzc577.com )

1.wamp搭建的环境,用post获取表单提交数据返回值为空
代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<form action="test.php" method="post">
    Firstname: <input type="text" name="firstname" value="aaa" />
    Lastname: <input type="text" name="lastname" />
    Age: <input type="text" name="age" />
    <input type="submit" />
</form>
</body>
</html>
<?PHP
$firstname = $_POST["firstname"];
$lastname = $_POST["lastname"];
$age = $_POST["age"];
if$firstname==""{
  echo "<script>alertYour username is empty!;</script>";
}else{
  var_dump$firstname;
}
?>

报错:Notice: Undefined index: firstname in E:WebWeb SoftwarewampwwwDEMOtest.php

2.php服务器是阿帕奇没有错,端口号也是80没有错

3.试了get方法,依然得不到数据



我发现我自己的问题了:html文件没有从和php文件的同一路径打开~

确定几点问题!

1.本次测试的test1.htmltest.php两个文件均在同一级目录下DEMO
2.请不要使用file://路径访问你的PHP文件,这样PHP文件不会被安装在你电脑上的php.exe解释器解释。
3.请使用http://协议访问您的test1.html,并正确填入值提交表单到test.php
4.请注意你的PHP文件开头<?php 还是 <?PHP

确定好以上几点,看看问题是否还存在呢?

测试你的代码并没有问题

Firstname: <input type="text" name="firstname"value="aaa" />

改成

Firstname: <input type="text" name="firstname" value="aaa" />

试试 name 和 value 之间少了一个空格吧

好像没问题啊?

报错:Notice: Undefined index: firstname in E:WebWeb SoftwarewampwwwDEMOtest.php

此错误是一个Notice级的错误,可以忽略,它是想告诉你$firstname还没有被申明就已经在使用了。但是如果不希望它出现,有很多办法。比如修改php.ini中的php_error。

(看完/读完)这篇文章有何感想! www.yzc577.com的分享…

yzc577亚洲城亚洲娱乐第一站mysql默认与是否为空之间有什么关系

( yzc577亚洲城亚洲娱乐第一站 )

RT
顺便看到有个博客有这么一句话
如果有默认值,则不允许为空,否则前后矛盾,数据修改之后依然是它的默认值
同时我想知道的就是如果我设置了默认 然后没有设置可空 查询时候会自动填入默认么 如果设置可空会有什么后果呢
当然 我指的严格模式下

请务必来人救我

你不要如果,亲自去尝试一下如何呢。有的东西自己试一试就知道答案的。

(看完/读完)这篇文章有何感想! yzc577亚洲城亚洲娱乐第一站的分享…

www.yzc577.comMAMP安装后没有 mysql 控制命令,软连接没权限等等

( www.yzc577.com )

安装 MAMP 后再终端输入 mysql 提示

mysql
-bash: mysql: command not found

然后自己制作连接到/usr/bin,提示没权限

# sudo ln -s /Applications/MAMP/Library/bin/mysql /usr/bin
ln: /usr/bin/mysql: Operation not permitted

想用 Sequel Pro 连接数据库,也是提示:

MySQL said: Access denied for user root@localhost using password: YES

请问这些问题怎么解决呢?

mysql
-bash: mysql: command not found
这个可能是环境变量的问题

第二个不知道,没玩过。

MySQL said: Access denied for user root@localhost using password: YES
你这是密码错误的提示呢

如果你是mac,Operation not permitted的解决方法
是El Capitan 加入了Rootless机制,不再能够随心所欲的读写很多路径下了。设置 root 权限也不行。
要关闭Rootless
重启按住 Command+R,进入恢复模式,打开Terminal。

csrutil disable

再重启就可以
参考文章: http://www.jianshu.com/p/22b8…

(看完/读完)这篇文章有何感想! www.yzc577.com的分享…

www.yzc577.com我删除mysql数据的时候,明明有四十万条,为什么每次只删除了一部分?

( www.yzc577.com )

DELETE FROM minute1_pp01temp WHERE id> 111352;

...
...

[SQL] DELETE FROM minute1_pp01temp WHERE id> 111352;
受影响的行: 448
时间: 0.016s

[SQL] DELETE FROM minute1_pp01temp WHERE id> 111352;
受影响的行: 448
时间: 0.016s

1、mysql删除大量数据,直接delete会锁表,用存储过程循环执行delete比较方便。

例如:

DELIMITER $$
CREATE PROCEDURE delete_temp_tab
BEGIN
    REPEAT
        DELETE FROM test.`tab` WHERE id > 111352 LIMIT 1000;
    UNTIL ROW_COUNT=0 END REPEAT;
END $$
DELIMITER ;
CALL delete_temp_tab;
DROP PROCEDURE IF EXISTS delete_temp_tab;

2、要么就是把需要的数据导入到一张新的表中,再把原表删除。

(看完/读完)这篇文章有何感想! www.yzc577.com的分享…