php mysql_insert_id()返回数据库最新id实现方法
代码如下 | 复制代码 |
mysql_insert_id() |
语法:mysql_insert_id(connection)
参数connection,可选。规定 MySQL 连接。如果未规定,则使用上一个连接。
mysql_insert_id() 返回给定的 connection 中上一步 INSERT 查询中产生的 AUTO_INCREMENT 的 ID 号。如果没有指定 connection ,则使用上一个打开的连接。
如果需要保存该值以后使用,要确保在产生了值的查询之后立即调用 mysql_insert_id()。
代码如下 | 复制代码 |
<?php $db_selected = mysql_select_db("test_db",$con); $sql = "INSERT INTO person VALUES ('Carter','Thomas','Beijing')"; mysql_close($con); |
mysql_insert_id() 返回给定的 link_identifier 中上一步 INSERT 查询中产生的 AUTO_INCREMENT 的 ID 号。如果没有指定 link_identifier,则使用上一个打开的连接。如果上一查询没有产生 AUTO_INCREMENT 的值,则 mysql_insert_id() 返回 0。如果需要保存该值以后使用,要确保在产生了值的查询之后立即调用 mysql_insert_id()。
LAST_INSERT_ID()
MySQL也提供了这么一个同样功能的API,它总是保存着最新产生的AUTO_INCREMENT值,并且不会在查询语句之间被重置,也就是说,在执行INSERT操作后,执行SELECT、UPDATE、DELETE语句都不会影响该API的返回值。
可以用 SELECT LAST_INSERT_ID(); 来查询LAST_INSERT_ID() 的返回值。
使用单条INSERT语句插入多条记录,,LAST_INSERT_ID() 只返回插入的第一条记录产生的AUTO_INCREMENT值。
php的mysqli扩展被封装到一个类中,是一种面向对象的技术,执行速度更快,与传统的过程化方法相比更方便也更高效默认情况下mysqli在php是未开启的我们需在
要在PHP中使用mysqli扩展,需要在配置文件php.ini中添加如下的设置:
代码如下 | 复制代码 |
extension=php_mysqli.dll |
如果配置文件中已有上述设置,确保extension前面没有“;”,否则将其去掉。下面开始介绍如何使用mysqli扩展来存取数据库,即可了.
代码如下 | 复制代码 |
<?php $db_host="localhost"; //连接的服务器地址 $db_user="root"; //连接数据库的用户名 $db_psw="root"; //连接数据库的密码 $db_name="sunyang"; //连接的数据库名称 $mysqli=new mysqli(); $mysqli->connect($db_host,$db_user,$db_psw,$db_name); ?> |
关闭与MySQL服务器的连接通过mysqli对象调用close()方法即可,例如:
$mysqli->close();
代码如下 | 复制代码 |
<?php |
数据查询
代码如下 | 复制代码 |
<?php |
其它的像数据保存等待
mysqli类中的成员方法
__construct():构造方法,用于创建一个mysqli对象,也可以建立一个连接。
autocommit():开启或关闭数据库修改自动提交。
change_user():改变数据库连接所指定的用户。
character_set_name():返回数据库连接默认字符集。
close():关闭先前打开的连接。
commit():提交当前的事物。
connect():打开一个新的连接到mysql数据库服务器。
debug():执行调试操作。
dump_debug_info():转储调试信息。
get_client_info():返回客户端版本。
get_host_info():返回一个字符串代表的连接使用类型,如:Localhost via UNIX socket
get_server_info():返回mysql服务器版本。
get_server_version():返回整数形式的mysql服务器版本。
init():初始化一个mysqli并返回一个资源。
info():检索有关最近执行的查询。
kill():杀死一个mysql线程。
multi_query():执行多个查询语句。
more_results():从多查询语句中检索是否有任何更多的查询结果。
next_result():从当前执行的多查询中读取下一个结果。
options():设置选项。
ping():如果没有连接,ping一台服务器连接或重新连接。
prepare():准备一个sql语句的执行,返回mysqli_stmt对象。
query():与数据库交互都是通过查询进行的,该方法向数据库发送查询来执行,执行失败返回FALSE。
real_connect():试图打开一个连接到mysql数据库服务器。
escape_string():转义特殊字符的字符串。
rollback():回滚当前的事务。
select_db():为数据库查询选择一个默认的数据库。
set_charset():设置默认客户端字符集。
ssl_set():使用ssl用于建立安全连接。
stat():获取当前的系统状态。
stmt_init():初始化一个声明,返回一个mysql_stmt对象。
store_result():从最后查询中转让结果集。
thread_safe():是否考虑返回安全的线程。
mysql类中的成员属性
$affected_rows:前一个mysql操作中影响的行数。
$client_info:mysql客户端版本(字符串)。
$client_version:mysql客户端版本(整数)。
$errno:最近函数调用的错误代码。
$error:最近函数调用的错误信息字符串。
$field_count():查询获取的列数。
$host_info:连接类型使用(字符串)。
$info:最近执行的查询。
$insert_id:最后查询自动生成的编号。
$protocol_version:mysql协议使用的版本。
$sqlstate:包含SQLSTATE错误码的最后一个错误。
$thread_id:当前连接线程ID。
$warning_count:前一个sql语句执行过程中产生的警告数量。
出现中文乱码一般情况是文档编码与数据库编码不一致导致的,下面我们来分析MYSQL中文乱码的原因吧。其MYSQL的默认字符集竟然是瑞典文(latin1_swedish_ci),害的我手动一个表一个表地修改字符集为Unicode多语言(utf8_unicode_ci)。
只好查资料,发现了一个解决方法,就是在mysql_connect后面加一句SET NAMES UTF8,即可使得UTF8的数据库消除乱码,对于GBK的数据库则使用SET NAMES GBK,代码如下:
代码如下 | 复制代码 |
$mysql_mylink = mysql_connect($mysql_host, $mysql_user, $mysql_pass); |
mysql2xml.php类文件:用于备份MySQL数据的!!
代码如下 | 复制代码 |
<?php |
调用方法:
代码如下 | 复制代码 |
<?php $xml = new MySQL2XML(array('host'=>'localhost', 'username'=>'root', 'password'=>'', 'database'=>'mysql')); $xml->setTables(array('wp_term_relationships','wp_terms'));//设置备份的表 $xml->setSaveFolder('datas/');//保存备份文件的文件夹 $xml->toXML();//备份开始 ?> |
windows+php中memcached.exe的安装与配置
1.Windows版本的下载地址为: http://code.jellycan.com/memcached/
将压缩文件解压到 c:/memcached/
2. 在CMD下输入 “c:/memcached/memcached.exe -d install” 安装。
3. 再输入:”c:/memcached/memcached.exe -d start” 启动。NOTE:以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。
4.若指定了 -m,则表示缓存大小为 -m后的数字,单位是 M,例如:
c:/memcached/memcached.exe –l 127.0.0.1 –m 32 – d start
如下设置memcached使用内存问题帮助:
按照上面的安装步骤安装之后,使用memcached –m 200来调整最大内存占用之后会发现没有起作用,总是默认的64MB的内存,在网上搜了一下,原因是注册表中并没有写入信息,可以这样来修改。
1. memcached –d shutdown 首先关闭memcached服务。
2.进入注册表,找到 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/memcached Server, 在其中有一个ImagePath项,值为 “c:/memcached/memcached.exe” -d runservice,在后面加上 -l 127.0.0.1 -m 3000 -c 2048。
3.memcached –d start 启动memcached服务,这样就将memcached的最大内存修改为了3000MB。
如果下载的是二进制的版本,直接运行就可以了,可以加上参数来加以设置。
常用设置:
-p <num> 监听的端口
-l <ip_addr> 连接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u <username> 以<username>的身份运行 (仅在以root运行的时候有效)
-m <num> 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c <num> 最大同时连接数,默认是1024
-f <factor> 块大小增长因子,默认是1.25
-n <bytes> 最小分配空间,key+value+flags默认是48
-h 显示帮助
linux+php中memcached.exe的安装与配置
首页
http://www.danga.com/memcached
下载地址:
http://danga.com/memcached/download.bml
下载文件
memcached-1.2.6.tar.gz
tar zxvf memcached-1.2.6.tar.gz
./configure --prefix=/usr/local/memcached-1.2.6
make
make install
注意:
memcache需要这个包libevent,不然安装时要报错:
checking for libevent directory... configure: error: libevent is required. You can get it from http://www.monkey.org/~provos/libevent/
If it's already installed, specify its path using --with-libevent=/dir/
下载得到文件libevent-1.4.9-stable.tar.gz
tar zxvf libevent-1.4.9-stable.tar.gz
./configure --prefix=/usr/local/libevent-1.4.9-stable.tar.gz
make
make install
由于我安装没有安装在usr下面,所以最后启动memcache报错:
[root@localhost bin]# ./memcached -d -m 10 -p 11211 -u root -l 0.0.0.0
./memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
检查libevent安装情况:
ls -al /usr/lib | grep libevent
把 libevent-1.4.so.2 拷贝/链接到 /usr/lib 中,否则 memcached 无法正常加载。
cp libevent-1.4.so.2 /usr/lib/
文章出处:http://www.diybl.com/course/6_system/linux/linuxjq/20071010/77432.html
安装完之后要启动服务
cd /usr/local/memcached-1.2.6/bin
./memcached -d -m 50 -p 11211 -u root -l 0.0.0.0
参数说明
-m 指定使用多少兆的缓存空间;
-p 指定要监听的端口;
-u 指定以哪个用户来运行
相关文章
- 操作类就是把一些常用的一系列的数据库或相关操作写在一个类中,这样调用时我们只要调用类文件,如果要执行相关操作就直接调用类文件中的方法函数就可以实现了,下面整理了...2016-11-25
- 本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
- 这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
- 这篇文章主要介绍了解决Mybatis 大数据量的批量insert问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-09
- php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
- 这篇文章主要介绍了Intellij IDEA连接Navicat数据库的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借价值,需要的朋友可以参考下...2021-03-25
- 在开发过程中,我们经常会将日期时间的毫秒数存放到数据库,但是它对应的时间看起来就十分不方便,我们可以使用一些函数将毫秒转换成date格式。 一、 在MySQL中,有内置的函数from_unixtime()来做相应的转换,使用如下: 复制...2014-05-31
- C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
- 通过内网连另外一台机器的mysql服务, 确发现速度N慢! 等了大约几十秒才等到提示输入密码。 但是ping mysql所在服务器却很快! 想到很久之前有过类似的经验, telnet等一些服务在连接请求的时候,会做一些反向域名解析(如果...2015-10-21
- 批量更新mysql更新语句很简单,更新一条数据的某个字段,一般这样写:复制代码 代码如下:UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value';如果更新同一字段为同一个值,mysql也很简单,修改下where即...2013-10-04
- 某些时候,例如为了搭建一个测试环境,或者克隆一个网站,需要复制一个已存在的mysql数据库。使用以下方法,可以非常简单地实现。假设已经存在的数据库名字叫db1,想要复制一份,命名为newdb。步骤如下:1. 首先创建新的数据库newd...2015-10-21
使用insertAfter()方法在现有元素后添加一个新元素
复制代码 代码如下: //在现有元素后添加一个新元素 function insertAfter(newElement, targetElement){ var parent = targetElement.parentNode; if (parent.lastChild == targetElement){ parent.appendChild(newEl...2014-05-31- mysqldump命令的用法1、导出所有库系统命令行mysqldump -uusername -ppassword --all-databases > all.sql 2、导入所有库mysql命令行mysql>source all.sql; 3、导出某些库系统命令行mysqldump -uusername -ppassword...2015-10-21
- 1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011:删除数据库...2013-09-23
- EXCEL数据上传到SQL SERVER中的方法需要注意到三点!注意点一:要把EXCEL数据上传到SQL SERVER中必须提前把EXCEL传到服务器上.做法: 在ASP.NET环境中,添加一个FileUpload上传控件后台代码的E.X: 复制代码 代码如下: if...2013-09-23
- 这篇文章主要介绍了c#从数据库里取得数据并异步更新ui的方法,大家参考使用吧...2020-06-25
- yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2使用中的一些基本的增删改查操作。 User::find()->all(); //返回所有用户数据; User::findOne($id); //返回 主键...2015-11-24
- 这篇文章主要介绍了springBoot 项目排除数据库启动方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-10
- 1.用phpmyadmin创建数据库和数据表 创建数据库的时候,请将“整理”设置为:“utf8_general_ci” 或执行语句: 复制代码 代码如下:CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 创...2015-10-21
- 这篇文章主要介绍了Linux 下使用shell脚本定时维护数据库,本文通过案例分析给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11