当我们使用传统的 mysql_connect 、mysql_query方法来连接查询数据库时,如果过滤不严,就有SQL注入风险,导致网站被攻击,失去控制。虽然可以用mysql_real_escape_string()函数过滤用户提交的值,但是也有缺陷。而使用PHP的PDO扩展的 prepare 方法,就可以避免sql injection 风险。 PDO(PHP Data Object) 是PHP5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,如 php_mysql.d...
当有多条mysql语句连起来需要执行,比如 $sqls= “insert table a values(1,2); insert table a values(2,3);” 需要执行的话php中可以使用的方法有三个: mysql_query pdo mysqli 三种方法当sqls语句没有问题的时候都是可以的。 但是 当sql语句是错误的时候会出现问题第一条sql错误:三个方法都返回false 第一条sql正确,第二条sql错误:mysql_query、pdo、 mysqli:query也是返回true。所以这个时候你是没法判断你的sqls是否有那条...
一, 分区概念 分区允许根据指定的规则,跨文件系统分配单个表的多个部分。表的不同部分在不同的位置被存储为单独的表。MySQL从5.1.3开始支持Partition。 分区和手动分表对比手动分表 分区多张数据表 一张数据表重复数据的风险 没有数据重复的风险写入多张表 写入一张表没有统一的约束限制 强制的约束限制MySQL支持RANGE,LIST,HASH,KEY分区类型,其中以RANGE最为常用:Range(范围)–这种模式允许将数据划分不同范围。例...
一切源于一个实验,请看下面的例子: 表: 代码如下:CREATE TABLE IF NOT EXISTS `foo` ( `a` int(10) unsigned NOT NULL AUTO_INCREMENT, `b` int(10) unsigned NOT NULL, `c` varchar(100) NOT NULL, PRIMARY KEY (`a`), KEY `bar` (`b`,`a`) ) ENGINE=InnoDB; CREATE TABLE IF NOT EXISTS `foo2` ( `a` int(10) unsigned NOT NULL AUTO_INCREMENT, `b` int(10) unsigned NOT NULL, `c` varchar(100) NOT NULL, PRIMARY KEY (`a`...
mysql中分页查询有两种方式, 一种是使用COUNT(*)的方式,具体代码如下 代码如下:SELECT COUNT(*) FROM foo WHERE b = 1; SELECT a FROM foo WHERE b = 1 LIMIT 100,10; 另外一种是使用SQL_CALC_FOUND_ROWS 代码如下:SELECT SQL_CALC_FOUND_ROWS a FROM foo WHERE b = 1 LIMIT 100, 10; SELECT FOUND_ROWS(); 第二种方式调用SQL_CALC_FOUND_ROWS之后会将WHERE语句查询的行数放在FOUND_ROWS()之中,第二次只需要查询FOUND_ROWS()就可...
1、更新1 sudo apt-get update 2、安装nginx1 sudo apt-get intsall nginx Ubuntu安装之后的文件结构大致为:* 所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下*程序文件在/usr/sbin/nginx * 日志放在了/var/log/nginx中*并已经在/etc/init.d/下创建了启动脚本nginx* 默认的虚拟主机的目录设置在了/var/www/nginx-default 下面可以启动nginx来看看效果(请确保80端口没有其他服务在使用)...
当你打开phpmyadmin时可能会报这样的一个错误, 缺少 mysqli 扩展。请检查 PHP 配置。 你可以按照以下这几种方法进行检查: 1.检查php.ini ;extension=php_mysqli.dll是不是已经启用 也就是去掉前面的; 2.检查php.ini extension_dir 地址是不是指向了php目录的ext目录下这步是关键 我就是处在这一步的问题上 我把 extension_dir = "e:\www\php54\ext" 设置成了自己的目录 就可以了 3.检查lib_mysql.dll有没有拷贝到windows目录下...
学习php,使用了wamp安装包来搭建php+apache+mysql的环境,wamp官方下载地址:http://www.wampserver.com/en/ .但是wamp默认的用户名是'root',密码是空。现在我需要把密码改成自己想要的字符串。我的wamp的安装目录是"d:\wamp". 在网上搜索了一下,试过好多次,有的不可行,比如直接修改“D:\wamp\apps\phpmyadmin3.4.10.1\config.inc.php”文件,将 代码如下:$cfg[Servers][$i][password] = ; 修改成自己的密码: 代码如下:$cf...
了解MySql必须牢牢记住其体系结构图,Mysql是由SQL接口,解析器,优化器,缓存,存储引擎组成的1 Connectors指的是不同语言中与SQL的交互 2 Management Serveices & Utilities: 系统管理和控制工具 3 Connection Pool: 连接池。 管理缓冲用户连接,线程处理等需要缓存的需求 4 SQL Interface: SQL接口。 接受用户的SQL命令,并且返回用户需要查询的结果。比如select from就是调用SQL Interface 5 Parser: 解析器。 SQL命令传递到解...
首先说明,远程服务器是可远程访问的。 我遇到的问题是这样的:有A,B,C三台服务器,C为服务器,B可以用PHP成功连接上C机器的mysql,而A机器则不能连接! 可以说,肯定不是代码有什么问题,服务器上的mysql设置也是没什么问题的,因为B机器都是可以的。 肯定是A机器的设置有问题! 在网上一顿搜,各种说mysql授权问题的,以及修改php.ini的,修改防火墙的,事实上都不是这些问题导致的。 和这个页面上讨论的问题类似,但是没人给出...
说说mysql_connect与mysql_pconnect的区别,这俩函数用法上差不多,网上有说应该用pconnect的,pconnect是个 好东西;也有视pconnect如洪水猛兽的,坚决不让用pconnect的,也有态度暧昧不清的。那这个东西到底如何呢?永久链接并不是说,服务器打开了一个连接,然后所有的人都共享这个链接。永久连接一样是每个客户端来就打开一个连接,有200人访问就有200个连接。其 实mysql_pconnect()本身并没有做太多的处理, 它唯一做的只是在p...
查询:MySQL:SELECT * FROM userMongo:db.user.find()MySQL:SELECT * FROM user WHERE name = 'starlee'Mongo:db.user.find({‘name' : 'starlee'})插入:MySQL:INSERT INOT user (`name`, `age`) values ('starlee',25)Mongo:db.user.insert({‘name' : 'starlee', ‘age' : 25})如果你想在MySQL里添加一个字段,你必须:ALTER TABLE user….但在MongoDB里你只需要:db.user.insert({‘name' : 'starlee', ‘age' : 25, ‘email' ...
这两个函数,返回的都是一个数组,区别就是第一个函数返回的数组是只包含值,我们只能$row[0],$row[1],这样以数组下标来读取数据,而mysql_fetch_array()返回的数组既包含第一种,也包含键值对的形式,我们可以这样读取数据,(假如数据库的字段是 username,passwd): $row[username], $row[passwd]而且,如果用($row as $kay => $value)来操作的话,还以直接取得数据库的字段名称。更主要的是mysqli是php5提供的新函数库,(i)表示...
mysql_fetch_object()同样用于获取查询数据结果集,返回当前行数据,并自动滑向下一行。但与mysql_fetch_row()和mysql_fetch_array()不同的是,它返回的是一个对象,这个对象的属性集合即为数据的属性集合,而属性上的值则为数据库中当前行该属性上的值。函数定义如下。 代码如下:object mysql_fetch_object( int result, int [result_type])参数说明同mysql_fetch_array()。返回值如下。成功:一个对象,该对象的属性名对应于结果...
同mysql_fetch_row()类似,函数mysql_fetch_array()也是获取结果集中当前行数据,并在调用后自动滑向下一行。其定义如下。 代码如下:array mysql_fetch_array(int result, int [result_type])参数说明如下。(1)result:由函数mysql_query()或mysql_db_query()返回的结果标识,用来指定所要获取的数据的SQL语句类型。(2)result_type:用于指定结果集类型,可选,取值范围为PHP常量集合{MYSQL_ASSOC, MYSQL_NUM, MYSQL_BOTH}。函...