精华内容
下载资源
问答
  • 2018-01-08 10:24:18
    mysql_query("SET AUTOCOMMIT=0"); //设置mysql不自动提交,需自行用commit语句提交
    $res1 = mysql_query($sql1);
    $res2 = mysql_query($sql2);
    if ($res1 && $res2) {
        mysql_query("COMMIT");//提交事务
    }else{
        mysql_query("ROLLBACK");//至少有一条sql语句执行错误,事务回滚
    }
    更多相关内容
  • PHP MySQL 持久连接(mysql_pconnect)

    千次阅读 2018-10-16 16:10:10
    PHP MySQL 持久连接(mysql_pconnect) 先来一段 PHP 连接 MySQL 的经典代码: 1 2 3 4 5 6 7 8 <?php $con = mysql_connect("localhost", &...

    PHP MySQL 持久连接(mysql_pconnect)

    先来一段 PHP 连接 MySQL 的经典代码:

    1

    2

    3

    4

    5

    6

    7

    8

    <?php

    $con = mysql_connect("localhost", "root", "123456");

    if (!$con) {

        die("Could not connect: " . mysql_error());

    }

    // some code

    mysql_close($con);

    ?>

    这没什么问题,一直这样用。后来看文档发现有个函数 mysql_pconnect(打开一个到 MySQL 服务器的持久连接)。官方文档是这样介绍的:

    首先,当连接的时候本函数将先尝试寻找一个在同一个主机上用同样的用户名和密码已经打开的(持久)连接,如果找到,则返回此连接标识而不打开新连接。

    其次,当脚本执行完毕后到 SQL 服务器的连接不会被关闭,此连接将保持打开以备以后使用(mysql_close() 不会关闭由 mysql_pconnect() 建立的连接)。

    我们都知道建立 MySQL 连接比较消耗资源,要是能复用连接那不是牛逼了。但是 PHP 不是脚本语言吗?运行完了啥都没了,怎么维持持久连接呢?

    实践是检验真理的唯一标准,还是试一试吧:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    <?php

    // pconnect.php

    $con = mysql_pconnect("localhost", "root", "123456");

    // connect.php

    // $con = mysql_connect("localhost","root","123456");

    if (!$con) {

      die('Could not connect: ' . mysql_error());

    }

    sleep(10);

    通过 URL 访问 pconnect.php,页面加载完成后,等待 10s ,新开浏览器再次访问。在 MySQL 命令行运行「show full processlist;」查看建立的连接:

    2015-10-15_001413

    感觉并没有复用呀,再次访问还是重新建立了连接(从 Time 字段的值可以看出),那么试试访问 connect.php :

    2015-10-14_230252

    很明显脚本执行完成连接就断了,这也是 mysql_connect 的特征,符合常理。但是怎么没有出现 mysql_pconnect 的特征呢?这种时候没办法,只能仔细再看文档,发现这么一句话:

    注意,此种连接仅能用于模块版本的 PHP。

     

    原来如此,我用的是 Nginx+PHP-FPM 模式,而非 Apache+php_module 模式。 Nginx+PHP-FPM 模式运行过程大概为:Nginx 根据配置(location ~ \.php$)发现这请求我处理不了,然后把请求转给 PHP-FPM(PHP FastCGI管理器) 处理(fastcgi_pass unix:/var/run/php5-fpm.sock;)。PHP-FPM 的 master 进程带着一帮小弟正等着处理上游来的请求呢,每来一个请求就会派一个小弟去处理。处理完了将结果返回给 Nginx,最后自己也死了,所以这个小弟生前建立的连接也就没了(准确来说是 MySQL 并不这鬼崽子挂了,还一直保持着这个连接,但别的小弟并不知道这事)。

    2015-10-14_232942

    在本地 WampServer 环境,同样方式访问 pconnect.php,结果如下:

    2015-10-14_235232

    明显可以看出连接得到了复用。在空闲的情况下,新的请求不会再新建连接。那为什么 Apache+php_module 模式能支持持久连接呢?其实这不是 PHP 能持久连接而是 Apache 维持了这个连接,相当于 Apache 的连接线程池充当了 MySQL 的连接池。

    那么同时大量访问呢?会是什么情况。

    2015-10-15_002241

    可以发现连接得到了复用,效率得到了提升。那这能说明 pconnect 是万金油吗?并不见得,官方文档中就有一段提醒:

    注意,如果持久连接的子进程数目超过了设定的数据库连接数限制,系统将会产生一些问题。如果数据库的同时连接数限制为 16,而在繁忙会话的情况下,有 17 个线程试图连接,那么有一个线程将无法连接。如果这个时候,在脚本中出现了使得连接无法关闭的错误(例如无限循环),则该数据库的 16 个连接将迅速地受到影响。

    由上面的试验也能看到,不管是哪种 PHP 运行模式,都会使 MySQL 产生很多闲置的连接进程,这会占用很多的内存,若配置不当(mysql.max_connections <<< Apache.MaxClients),在小内存的机器上 MySQL 很容易就会崩掉。更有甚者,当你的产品非常多时,每个产品配置了不同的 MySQL 账号密码,持久连接复用的整体效率会直线下降,大量的连接占着茅坑不拉屎,非常容易就会产生 “Too many connections MySQL error” 错误,进一步则 MySQL 崩掉。

    综上所诉,建议还是使用 mysql_connect(MySQL 扩展已经不推荐使用了,PHP 7 甚至在默认扩展中移除了此扩展,推荐使用 MySQLi 和 PDO)。当然也不用恐惧 pconnect,了解两者的区别与联系,做好配置和压测,在线上环境大内存机器上还是很有用的。不过现在在 HTTP 服务器这一块,Nginx 可以说已经完全取代了 Apache。感受一下 PHP CodeIgniter 框架 2.X 和 3.x 数据库默认配置的改变,就能更加容易体会到这一点:

    2015-10-15_011633

    关于 PHP MySQL 连接池可参考:http://wiki.swoole.com/wiki/page/350.html

    就目前来看,WEB 开发这块,折腾连接池等东西,还不如把(一部分)数据迁移到 Redis 等内存/No-SQL 数据库收益来的大。

    上文关于持久连接的一些结论并不仅仅适用于 MySQL,同样适用于 Redis 等其它数据库。

    在下对于这一块理解的也不是很深,若有任何纰漏,还请不吝赐教。

    参考资料:

    《PHP MySQL 连接数据库》 http://www.w3school.com.cn/php/php_mysql_connect.asp

    《PHP: mysql_pconnect – Manual》 http://php.net/manual/zh/function.mysql-pconnect.php

    《数据库持久连接 》 http://php.net/manual/zh/features.persistent-connections.php

    《概念了解:CGI,FastCGI,PHP-CGI与PHP-FPM》 http://www.nowamagic.net/librarys/veda/detail/1319

    展开全文
  • php mysql_connect不能用

    2017-02-05 03:16:03
    $con = mysql_connect("127.0.0.1","root","password"); echo 'hello'; if($con){ echo '连接mysql数据库成功. '; }else{ die('连接mysql数据库失败:' . mysql_error()); } mysql_close($con);...
  • PHP+Mysql 带SQL注入源码 下载

    热门讨论 2017-01-01 17:41:07
    PHP+Mysql 带SQL注入源码、下载解压部署到环境中去就行了。
  • php mysql_connect(),mysqli区别

    千次阅读 2016-10-22 19:02:01
    php mysql_connect(),mysqli区别 由于基础问题,这个东西害我找了一天错误在哪也没找出来,晚上终于好了,总结下: mysql_connect()是面向过程的数据库连接方式,mysqli是面向对象的方式。 如字面意思,一个是...

    php mysql_connect(),mysqli区别


    由于基础问题,这个东西害我找了一天错误在哪也没找出来,晚上终于好了,总结下:

    mysql_connect()是面向过程的数据库连接方式,mysqli是面向对象的方式。
    如字面意思,一个是面向过程的的,非对象的
    一个是对象形式进行方法调用

    区别

    mysqli 对象化

    $host = 'locahost'; //url 不要加端口,要单独指定,我就栽在这上面了
    
    $db = new mysqli($host,$user,$paddwd,$database,$port); //连接数据库
    //或者这样也可以
    $db = mysqli_connect($host,$user,$passwd,$database,$port); //连接数据库
    
    $db->set_charset('utf8'); //设置查询结果编码
    $result = $db->query($sql); //得到查询结果
    
    while($row = $tempResult->fetch_array()){ //遍历结果
        echo $row['post_title'];
    }
    $db->close(); //关闭连接

    过程化

    $host= "localhost:3306"; //这个需要加端口
    
    $link = mysql_connect($host,$user,$passwd); //建立连接
    mysql_select_db($database,$link); //选择数据库
    $result = mysql_query($sql,$link); //查询
    
    while($row = mysql_fetch_array($tempResult)){
        echo $row['post_title'];
    }
    
    mysql_close($link); //关闭连接
    echo $str;

    结论:

    可以看到,面向对象的用起来更爽一些。

    展开全文
  • 微信昵称特殊字符存储 PHP MYSQL

    千次阅读 2017-06-20 14:57:58
    php 解决微信昵称emoji表情插入MySQL报错 在PHP接受到微信用户昵称入库的时候报错 原因:utf-8 最大3个字节,而emoji占4个字节 解决办法: 1.修改mysql 数据库的字符集,改为utf8mb4,但是前提是MySQL...

    php 解决微信昵称emoji表情插入MySQL报错

    在PHP接受到微信用户昵称入库的时候报错

    原因:utf-8 最大3个字节,而emoji占4个字节

    解决办法:

    1.修改mysql 数据库的字符集,改为utf8mb4,但是前提是MySQL的版本需要5.5以上

    由于我用的MySQL还是5.0的,所以用其他方法

    2.用PHP过滤emoji

    复制代码
     1 private function emoji_encode($nickname){
     2         $strEncode = '';
     3         $length = mb_strlen($nickname,'utf-8');
     4         for ($i=0; $i < $length; $i++) {
     5             $_tmpStr = mb_substr($nickname,$i,1,'utf-8');
     6             if(strlen($_tmpStr) >= 4){
     7                 $strEncode .= '[[EMOJI:'.rawurlencode($_tmpStr).']]';
     8             }else{
     9                 $strEncode .= $_tmpStr;
    10             }
    11         }
    12         return $strEncode;
    13     }
    复制代码

    取出的时候再转码

    取出时直接使用rawurldecode转码 例如rawurldecode('%F0%9F%92%9C六六%F0%9F%92%9C');

    转载出处:http://www.cnblogs.com/daiyutage/p/5489301.html

    展开全文
  • php动态网页作业 大学生网页 php+mysql

    热门讨论 2015-05-05 13:48:28
    php动态网页作业 大学生网页 php+mysql
  • 第67篇 PHP MySQL连接创建数据库及表

    千次阅读 2017-02-05 07:50:55
    关键词:PHP MySQL简介, PHP连接mysql,php创建mysql数据库,php创建mysql表 一、PHP MySQL 1.1 PHP MySQL简介 语句 setnames utf8;用于设定数据库编码,让中文可以正常显示。 1.2 PHP 连接 MySQL PHP 5 及...
  • 1.开始说明 下面很多可能参照网上其中以为前辈的,但有所改进吧。这些设置可能会有所不同,你需要根据不同情况进行修改。 安装apache2 2.切换管理员身份 ...apt-get install mysql-server mysql-c
  • php+mysql简单小项目

    万次阅读 多人点赞 2020-09-22 10:17:51
    分了一下mvc,因为我只是刚学四五天的小白,MVC不是很明确,model还写不好,于是处理mysql的都单独写在了controller里面,导致controller有些多,就只是入门的php。 在这里我只放用户的增删改查。(小组和班级都是...
  • php+mysql登录注册最简单demo

    热门讨论 2014-05-10 23:54:53
    php+mysql用户登录注册最简单demo 附加数据库创建代码
  • php连接mysql的方式,用的多的是mysql扩展、mysqli扩展、pdo_mysql扩展,是官方提供的。php的运行机制是页面执行完会释放所有该php进程中的所有资源的,如果有多个并发访问本地的测试页面 http://127.0.0.1/1.php ...
  • Mac安装nginx+php+mysql+redis

    千次阅读 2022-03-11 14:57:22
    没有安装brew的童鞋,请先安装brew,不懂的可以百度 更新brew brew update 安装php7.4 brew install php@7.4 .../usr/local/opt/php@7.4/sbin/php-fpm --nodaemonize 加入环境变量 echo 'export PATH="/usr/lo
  • include("conn.php");  $pagesize=5;  $url=$_SERVER["REQUEST_URL"];  $url=parse_url($url);  $url=$url[path];  $numq=mysql_query("SELECT * FROM test ");  $num=mysql_num_rows($numq);  if($_...
  • php+mysql实现留言板

    千次阅读 2021-11-23 18:11:30
    2、连接mysql的代码 3、利用bootstrap来美化留言板 1、我的html代码为 <html> <head> <meta charset='utf-8'> <title>留言板</title> <style> .a{ width:100%; margin:0 ...
  • 基于PHP+MYSQL 的毕设系统+论文 1 夺宝答题王ThinkPHP答题小程序开源可二开.zip.zip 2 小程序开发-同城拼车(完整带PHP后台).zip 3 基于PHP+MySQL的学生成绩查询系统(源代码论文).zip 4 ...
  • PHP+MYSQL图书管理系统(课设)

    千次阅读 多人点赞 2021-12-17 14:00:39
    这里主要用到的技术是html+css+js+apache服务器+php+MySQL,逻辑较为简单,只用到了数据库的增删查改最基础的用法,登陆用到了php的session验证。纯属是简单完成本学期的课设作业,请大家不要笑我! 基本界面如下...
  • php 7.4连接MySQL

    万次阅读 2020-03-26 17:57:17
    下载php并解压,官网:https://www.php.net/downloads PhpStorm配置php开发环境 1.1 打开PhpStorm,点击File->Settings: 1.2 点击"Languages & Frameworks”,找到PHP 1.3选择php版本,选择CLI ...
  • PHPMySQL WEB开发(第4版).pdf

    千次下载 热门讨论 2012-11-21 17:46:29
    PHPMySQL Web开发(原书第4版)》将PHP开发与MySQL应用相结合,分别对PHPMySQL做了深入浅出的分析,不仅介绍PHPMySQL的一般概念,而且对PHPMySQL的Web应用做了较全面的阐述,并包括几个经典且实用的例子。...
  • 有必要用一下php+mysql实现一下这个“最基础”的用户功能,(虽然开发可能会用后端云) 基础结构 html+css+JavaScript作前端渲染; php作为后端,mysql作为数据库。 在这里暂时不涉及到安全问题(比如验证码和token...
  • 下面是时间戳查询如果你数据库时间显示的是 2011-04-05 那就不需要 用 strtotime 时间戳转换函数: $timea = strtotime($_POST['timea']); $timeb = strtotime($_POST['timeb']...$sql = mysql_query($sq2);
  • 详解phpmysql的关系

    万次阅读 多人点赞 2016-11-11 05:43:03
    2、利用php对数据库进行连接、创建、修改、插入等简单操作。 这篇文章的特点 1、在学习过程中碰到的很多问题,我都记录下来,在这篇文章中给予了解决办法。对于初学者而言能够很好 节约他们的事件,不用再像我...
  • PHP mysql_connect()连接-已淘汰

    千次阅读 2018-02-21 00:59:39
    1、首先在mysql命令控制台新建数据库mysql&gt; create database test; Query OK, 1 row affected (0.04 sec) mysql&gt; use test; Database changed mysql&gt; create table test_table( -&gt; ...
  • Windows下安装Nginx+php+mysql环境

    千次阅读 2019-07-19 16:29:38
    系统:Windows 7 64位系统 安装之前,首先下载软件: ...PHP Stable PHP 5.6.26: http://php.net/downloads.php mysql: http://dev.mysql.com/downloads/utilities/ 第一步:在D盘建立文件夹Nginx+...
  • php+mysql实现简单的图书管理系统 ps:前端页面设计得有点丑,将就着用,哈哈哈。不具备用户和管理员功能,如要实现只需将首页的功能根据数据库中账号信息选择性使用就可以了。数据库关系设计什么的完全没考虑 (借图)...
  • PHP+MySql实现简易图书馆管理系统

    万次阅读 多人点赞 2020-01-12 14:34:16
    此项目用PHP+MySql实现 项目总体功能描述:此项目为模拟图书馆的借阅系统,通过该系统可以查询目前图书的基本信息,图书是否在馆或者图书被谁借走,查询个人基本信息,借阅情况,同时也可以通过该系统进行图书的...
  • php 无法连接mysql8

    千次阅读 2018-10-31 14:02:42
    1.找到配置文件,我 的配置文件在 /usr/local/etc/my.cnf,如果找不到可以使用find或者...default_authentication_plugin=mysql_native_password character_set_server =utf8 重启mysql 2.更改ROOT用户的native_...
  • Kali安装Apache、MySQLPHP

    千次阅读 多人点赞 2020-07-19 17:45:44
    Kali安装配置Apache、MySQLPHP、SQLi-Labs Apache Kali虚拟机中是包含有Apache的,在/etc目录下ls即可显示出来, 所以这里只需要进行配置就可以了。 打开Apache服务 /etc/init.d/apache2 start /etc/init.d/...
  • Mysql - 百万级数据查询优化笔记 (PHP Script) ②

    万次阅读 多人点赞 2020-12-17 11:13:48
    Mysql - 百万级数据查询优化笔记 (PHP Script) ② 说明:要处理的是在一个脚本中统计的年度账单,和上一篇的处理思路完全 不同,先把全量取出,再按字典形式拼接,10w条数据只需要668s! 数据: 测试服:17w 正式服:...
  • PHPMySQL server has gone away问题

    万次阅读 2020-08-22 19:09:55
    脚本里存在sleep语句时间比较久, 导致出现一个现象就是sleep之前的SQL都是操作成功的,但是sleep之后,再执行SQL操作竟然报错: MySQL server has gone away. 也就是mysql的这个连接失效. 后来分析才知道, MySQL中...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 611,185
精华内容 244,474
关键字:

phpmysql

mysql 订阅