<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PHP数据库操作 &#8211; 九创科技</title>
	<atom:link href="https://www.3code.cn/tag/php-mysql-tag/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.3code.cn</link>
	<description>Wordpress外贸企业主题, Wp企业主题, wordpress企业主题, wordpress主题定制, WORDPRESS外贸网站建设SEO</description>
	<lastBuildDate>Fri, 20 Aug 2010 03:00:44 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>PHP取得当前插入数据库中记录的ID</title>
		<link>https://www.3code.cn/php-new-mysql-id/</link>
		
		<dc:creator><![CDATA[寒林]]></dc:creator>
		<pubDate>Fri, 20 Aug 2010 03:00:44 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP 函数]]></category>
		<category><![CDATA[PHP数据库操作]]></category>
		<guid isPermaLink="false">https://www.3code.cn/?p=1969</guid>

					<description><![CDATA[PHP取得当前插入数据库中记录的ID]]></description>
										<content:encoded><![CDATA[<p>在PHP中，经常需要把插入数据库中的id值取出来，而正好有这么一个函数：</p>
<p>&lt;?php<br />
//执行插入数据库的语句<br />
//……<br />
$getID=mysql_insert_id();//$getID即为最后一条记录的ID<br />
?&gt;</p>
<p>PHP 函数 mysql_insert_id() 是返回在最后一次执行了 INSERT 查询后，由 AUTO_INCREMENT 定义的字段的值</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Excel xls 导入到mysql的一种方法</title>
		<link>https://www.3code.cn/excel-xls-to-mysql/</link>
		
		<dc:creator><![CDATA[寒林]]></dc:creator>
		<pubDate>Fri, 30 Apr 2010 10:42:17 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[PHP数据库操作]]></category>
		<guid isPermaLink="false">https://www.3code.cn/?p=1629</guid>

					<description><![CDATA[有一个xls表格很多数据，需要导入到mysql数据库中。在网上搜索了一个比较可行的方法，列出来大家看下：
1. 首先打开excel, 用EXCEL对每行记录生成SQL语句：
2. 第一行数据生成后，利用excel的向下复制的功能，向下拉出其它行的数据。]]></description>
										<content:encoded><![CDATA[<p>有一个xls表格很多数据，需要导入到mysql数据库中。在网上搜索了一个比较可行的方法，列出来大家看下：</p>
<p><strong>1. 首先打开excel, 用EXCEL对每行记录生成SQL语句：<br />
</strong><br />
语法是：=CONCATENATE(&#8220;insert into ip (a1,a2,a3) values (&#8216;&#8221;,A1,&#8221;&#8216;,'&#8221;,B1,&#8221;&#8216;,'&#8221;,C1,&#8221;&#8216;);&#8221;)<br />
选中数据列右边的一个空白单元格，在excel地址栏中输入以上语句。<br />
其中a1,a2,a3是字段名称，A1,B1,C1是从单元格中获取的数据。<br />
<strong><br />
2. 第一行数据生成后，利用excel的向下复制的功能，向下拉出其它行的数据。</p>
<p>3. 对生成的数据列复制到记事本中，或者直接复制到phpmyadmin的导入的文本框中，利用phpmyadmin导入到mysql中即可。</strong></p>
<p>以上是全部。</p>
<p>欢迎大家讨论。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ASP使用MYSQL数据库全攻略</title>
		<link>https://www.3code.cn/asp-mysql/</link>
		
		<dc:creator><![CDATA[寒林]]></dc:creator>
		<pubDate>Fri, 12 Mar 2010 10:10:04 +0000</pubDate>
				<category><![CDATA[ASP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[asp数据库]]></category>
		<category><![CDATA[PHP数据库操作]]></category>
		<guid isPermaLink="false">https://www.3code.cn/?p=1579</guid>

					<description><![CDATA[MYSQL数据库以它短小、方便、速度快、免费等优点成为很多网站目前首选数据库，但一般都是用PHP+MYSQL相结合来开发各种动态页面，其实ASP也可以使用MYSQL数据库开发动态页面，小弟我也是刚刚学会，不敢独享，所以特写了这篇文章供大伙参考。]]></description>
										<content:encoded><![CDATA[<p>MYSQL数据库以它短小、方便、速度快、免费等优点成为很多网站目前首选数据库，但一般都是用PHP+MYSQL相结合来开发各种动态页面，其实ASP也可以使用MYSQL数据库开发动态页面，小弟我也是刚刚学会，不敢独享，所以特写了这篇文章供大伙参考。</p>
<p>我的环境是WINDOWS98+PWS4.0+mysql-3.23.32-win+PHP4<br />
必要的软件：PWS4.0（呵呵，废话）<br />
mysql-3.23.32-win（这个是最新版的）<br />
myodbc-2.50.36-dll（这个是最重要的，MYSQL ODBC的驱动程序，可以到www.mysql.com下载）<br />
第一步：安装MYSQL ODBD的驱动程序，将下载的myodbd-2.50.46-dll文件复制到windows\system目录下(windows2000<br />
是winnt/system32)<br />
然后建立一新文件，扩展名为reg（就是注册表文件）,将以下内容复制到该文件中。<br />
REGEDIT4</p>
<p>[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\myodbc driver]<br />
&#8220;UsageCount&#8221;=dword:00000002<br />
&#8220;Driver&#8221;=&#8221;C:\\WINDOWS\\System\\myodbc.dll&#8221;<br />
&#8220;Setup&#8221;=&#8221;C:\\WINDOWS\\System\\myodbc.dll&#8221;<br />
&#8220;SQLLevel&#8221;=&#8221;1&#8221;<br />
&#8220;FileUsage&#8221;=&#8221;0&#8221;<br />
&#8220;DriverODBCVer&#8221;=&#8221;02.50&#8221;<br />
&#8220;ConnectFunctions&#8221;=&#8221;YYY&#8221;<br />
&#8220;APILevel&#8221;=&#8221;1&#8221;<br />
&#8220;CpTimeout&#8221;=&#8221;120&#8221;<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers]<br />
&#8220;myodbc driver&#8221;=&#8221;installed&#8221;</p>
<p>保存后双击该文件，将上面代码注册到WINDOWS注册表中。<br />
如果安装在windows2000中,则Driver和Setup主键的值要做相应改变，这里我想就不用多说了。<br />
如果成功，在控制面板/ODBD数据源的驱动程序里将看到myodbd driver这一项！</p>
<p>第二步：建立ASP文件链接数据库。<br />
这里有两种方法，一种是在ODBC数据源中建立一个系统DSN。后来我发现不建立也可以在ASP中使用MYSQL,方<br />
法在下文将讲道。<br />
打开控制面板/ODBD数据源，选择系统DSN,然后添加一个新的DSN,驱动程序选择myodbd driver,会出现一个对<br />
话框供输入mysql<br />
相关信息。<br />
Windows DSN name: 所要建立DSN的名称<br />
Mysql Host (name or ip):Mysql服务器的名称或者是IP地址，通常填localhost<br />
Mysql database name:需要使用数据库的名称，数据库在Mysql管理程序中建立。这里我们使用一个例子。数<br />
据库名：hc188<br />
里面有数据表：user 数据表有两个字段分别是：username和password,随便插入几个<br />
数据。<br />
user:链接数据库的用户名，我填的是root超级用户<br />
password:链接数据库用户密码，如果没有，可以不填<br />
Port(if not 3306)：Mysql在服务器的端口，如果不填默认为3306<br />
SQL command on connect:使用sql命令链接数据库，这项可以不填<br />
填写完毕后选择OK保存。</p>
<p>下面链接数据库的ASP代码！</p>
<p>&lt;%<br />
strConnection = &#8220;dsn=hc188;driver={myodbd driver};server=localhost;uid=root;pwd=;database=hc188&#8221;<br />
Set adoDataConn = Server.CreateObject(&#8220;ADODB.Connection&#8221;)<br />
adoDataConn.Open strConnection</p>
<p>strQuery = &#8220;SELECT * FROM user&#8221;<br />
Set rs = adoDataConn.Execute(strQuery)<br />
If Not rs.BOF Then<br />
%&gt;<br />
&lt;TABLE&gt;<br />
&lt;TR&gt;<br />
&lt;TD&lt;b&gt;username&lt;/b&gt;&lt;/TD&gt;<br />
&lt;TD&gt;&lt;b&gt;password&lt;/b&gt;&lt;/TD&gt;<br />
&lt;/TR&gt;<br />
&lt;%<br />
Do While Not rs.EOF<br />
%&gt;<br />
&lt;TR&gt;<br />
&lt;TD&gt;&lt;%=rs(&#8220;username&#8221;)%&gt;&lt;/TD&gt;<br />
&lt;TD&gt;&lt;%=rs(&#8220;password&#8221;)%&gt;&lt;/TD&gt;<br />
&lt;/TR&gt;<br />
&lt;%<br />
rs.MoveNext<br />
Loop<br />
%&gt;<br />
&lt;/TABLE&gt;<br />
&lt;%<br />
Else<br />
Response.Write(&#8220;Sorry, no data found.&#8221;)<br />
End If</p>
<p>rs.Close<br />
adoDataConn.Close<br />
Set adoDataConn = Nothing<br />
Set rsEmailData = Nothing<br />
%&gt;</p>
<p>第二种方法：我在使用中想过如果不建立系统DSN，是否也可以使用MYSQL数据库呢？结果是可以的。<br />
方法很简单，把上面ASP代码第二行代码改为：<br />
strconnection=&#8221;DefaultDir=;Driver={myodbc driver};database=hc188&#8243;</p>
<p>我奇怪的发现，这种方法连用户名和密码都不需要就可以使用。是不是MYSQL的一个BUG呢？</p>
<p>以上代码全部经测试通过！</p>
<p>到此，全文结束了，是不是很简单呢！希望能帮上你！</p>
<p>做人要厚道，请注明转自酷网动力(www.ASPCOOL.COM)。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PHP调用数据库存贮过程</title>
		<link>https://www.3code.cn/php-command/</link>
		
		<dc:creator><![CDATA[寒林]]></dc:creator>
		<pubDate>Wed, 09 Dec 2009 10:26:16 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP数据库操作]]></category>
		<guid isPermaLink="false">https://www.3code.cn/?p=1244</guid>

					<description><![CDATA[昨天，一个战友问是否可以用php调用存贮过程，感觉应该可以，马上进行了实验，非常成功！非常出乎我的意料之外！因此，写出来，给大家参考！

大家知道，存储过程是在服务器端的一个脚本程序，执行起来速度很快，但它也有一个缺点，就是依赖与一个固定数据库，移植性不好！]]></description>
										<content:encoded><![CDATA[<p><strong>PHP调用数据库存贮过程</strong><br />
昨天，一个战友问是否可以用php调用存贮过程，感觉应该可以，马上进行了实验，非常成功！非常出乎我的意料之外！因此，写出来，给大家参考！</p>
<p>大家知道，存储过程是在服务器端的一个脚本程序，执行起来速度很快，但它也有一个缺点，就是依赖与一个固定数据库，移植性不好！</p>
<p>我的上回文章，提到了用com组件是可以访问ado以及相关的组件，无论是自己建的还是系统带的，都可以扩展系统的功能，但现在php不支持dcom/com+,但相信它的下一个版本应该是支持的。<br />
不说这么多了，我们马上试一下吧。</p>
<p><strong>下面是我的一个简单的存贮过程</strong><br />
CREATE PROCEDURE [sp_mystoreprocedure] AS<br />
select companyname, contactname, city from customers</p>
<p>其实，还可以写比较复杂的，可惜我对此研究不深，只好取简单了！</p>
<p>下面是我的php文件<br />
&lt;?<br />
define (&#8220;OLEDB_CONNECTION_STRING&#8221;,<br />
php程序员站<br />
&#8220;Provider=SQLOLEDB; Data Source=zzb; Initial Catalog=Northwind; User ID=sa; Password=&#8221;);<br />
$dbc = new COM(&#8220;ADODB.Connection&#8221;);<br />
$dbc-&gt;Open(OLEDB_CONNECTION_STRING);<br />
$command = &#8220;sp_mystoreprocedure&#8221;;<br />
$rs = $dbc-&gt;Execute($command); // Recordset<br />
$i = 0;</p>
<p>echo &#8216;&lt;table cellSpacing=&#8221;1&#8243; cellPadding=&#8221;3&#8243; width=&#8221;600&#8243; align=&#8221;center&#8221; bgColor=&#8221;#000000&#8243; border=&#8221;0&#8243;&gt;<br />
&lt;tr vAlign=&#8221;bottom&#8221; bgColor=&#8221;#9999cc&#8221;&gt;<br />
&lt;th&gt;Directive&lt;/th&gt;<br />
&lt;th&gt;Local Value&lt;/th&gt;<br />
&lt;th&gt;Master Value&lt;/th&gt;<br />
&lt;/tr&gt;&#8217;;</p>
<p>while (!$rs-&gt;EOF) {<br />
$i += 1;<br />
$fld0 = $rs-&gt;Fields(0);<br />
$fld1 = $rs-&gt;Fields(1);<br />
$fld2 = $rs-&gt;Fields(2);<br />
print &#8216;&lt;tr vAlign=&#8221;baseline&#8221; bgColor=&#8221;#cccccc&#8221;&gt;<br />
&lt;td bgColor=&#8221;#ccccff&#8221;&gt;&lt;b&gt;&#8217;;<br />
print $fld0-&gt;value;<br />
print &#8216;&lt;/b&gt;&lt;br&gt;&lt;/td&gt;</p>
<p>www.phperz.com</p>
<p>&lt;td align=&#8221;middle&#8221;&gt;&#8217;;<br />
print $fld1-&gt;value;<br />
print &#8216;&lt;/td&gt;&lt;td align=&#8221;middle&#8221;&gt;&#8217;;<br />
print $fld2-&gt;value;<br />
print &#8216;&lt;/td&gt;&lt;/tr&gt;&#8217;;</p>
<p>$rs-&gt;MoveNext();<br />
}<br />
print &#8216;&lt;/TABLE&gt;&#8217;;</p>
<p>$rs-&gt;Close();<br />
?&gt;</p>
<p>注意，服务器必须打开！另外，就是不能写错存贮过程的名称。否则会出项致命的错误，而且，你根本就不知道错误在那里，这就是php文件对错误处理的不好之处，但相信它以后是会改进的。</p>
<p>我学php需然有很长时间了，但发现要真正用好它，不那么容易，但它确实也超出了我的想象，有些东西真的很奇妙，真是，不用不知道，一用真奇妙！ php程序员站</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>php MySQL使用rand函数随机取记录</title>
		<link>https://www.3code.cn/php-mysql-rand/</link>
		
		<dc:creator><![CDATA[寒林]]></dc:creator>
		<pubDate>Wed, 09 Dec 2009 10:20:47 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP 函数]]></category>
		<category><![CDATA[PHP数据库操作]]></category>
		<guid isPermaLink="false">https://www.3code.cn/?p=1241</guid>

					<description><![CDATA[如何在mysql中使用随机数, 如何写一个语句能一下更新几百条MYSQL数据！
需要测试MYSQL数据库，里面有一个上万条数据的数据库，如何写一个PHP文件一下每次更新几百条信息，我都是写一个循环一次更新一条信息，这样我知道用WHILE写就可以了，要是一次更新好比100条数据改如何写呢！]]></description>
										<content:encoded><![CDATA[<p><strong>php MySQL使用rand函数随机取记录</strong></p>
<p>如何在mysql中使用随机数, 如何写一个语句能一下更新几百条MYSQL数据！<br />
需要测试MYSQL数据库，里面有一个上万条数据的数据库，如何写一个PHP文件一下每次更新几百条信息，我都是写一个循环一次更新一条信息，这样我知道用WHILE写就可以了，要是一次更新好比100条数据改如何写呢！</p>
<p>正确答案是：UPDATE cdb_posts SET views = rand();<br />
顺便给你找了点关于mysql rand函数的实例，如下：<br />
那就在insert 命令中，value()里面用rand()，注意字段宽度是否够一直以为mysql随机查询几条数据，就用<br />
SELECT * FROM `table` ORDER BY RAND() LIMIT 5</p>
<p>就可以了。<br />
但是真正测试一下才发现这样效率非常低。一个15万余条的库，查询5条数据，居然要8秒以上<br />
查看官方手册，也说rand()放在ORDER BY 子句中会被执行多次，自然效率及很低。<br />
You cannot use a column with RAND() values in an ORDER BY clause, because ORDER BY would evaluate the column multiple times.</p>
<p>搜索Google，网上基本上都是查询max(id) * rand()来随机获取数据。<br />
SELECT *<br />
FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MAX(id) FROM `table`)) AS id) AS t2<br />
WHERE t1.id &gt;= t2.id<br />
ORDER BY t1.id ASC LIMIT 5;</p>
<p>但是这样会产生连续的5条记录。解决办法只能是每次查询一条，查询5次。即便如此也值得，因为15万条的表，查询只需要0.01秒不到。<br />
上面的语句采用的是JOIN，mysql的论坛上有人使用<br />
SELECT *<br />
FROM `table`<br />
WHERE id &gt;= (SELECT FLOOR( MAX(id) * RAND()) FROM `table` )<br />
ORDER BY id LIMIT 1;</p>
<p>我测试了一下，需要0.5秒，速度也不错，但是跟上面的语句还是有很大差距。总觉有什么地方不正常。<br />
于是我把语句改写了一下。<br />
SELECT * FROM `table`<br />
WHERE id &gt;= (SELECT floor(RAND() * (SELECT MAX(id) FROM `table`)))<br />
ORDER BY id LIMIT 1;</p>
<p>这下，效率又提高了，查询时间只有0.01秒<br />
最后，再把语句完善一下，加上MIN(id)的判断。我在最开始测试的时候，就是因为没有加上MIN(id)的判断，结果有一半的时间总是查询到表中的前面几行。<br />
完整查询语句是：<br />
SELECT * FROM `table`<br />
WHERE id &gt;= (SELECT floor( RAND() * ((SELECT MAX(id) FROM `table`)-(SELECT MIN(id) FROM `table`)) + (SELECT MIN(id) FROM `table`)))<br />
ORDER BY id LIMIT 1;</p>
<p>SELECT *<br />
FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `table`)-(SELECT MIN(id) FROM `table`))+(SELECT MIN(id) FROM `table`)) AS id) AS t2<br />
WHERE t1.id &gt;= t2.id<br />
ORDER BY t1.id LIMIT 1;</p>
<p>最后在php中对这两个语句进行分别查询10次，<br />
前者花费时间 0.147433 秒<br />
后者花费时间 0.015130 秒<br />
看来采用JOIN的语法比直接在WHERE中使用函数效率还要高很多。</p>
<p>原文地址 http://www.phpq.net/viewnews-69.html</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PHP数据库永久连接</title>
		<link>https://www.3code.cn/php-connect-mysql/</link>
		
		<dc:creator><![CDATA[寒林]]></dc:creator>
		<pubDate>Wed, 02 Dec 2009 18:21:33 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP数据库操作]]></category>
		<guid isPermaLink="false">https://www.3code.cn/?p=1082</guid>

					<description><![CDATA[永久的数据库连接是指在脚本结束运行时不关闭的连接。当收到一个永久连接的请求时。PHP 将检查是否已经存在一个（前面已经开启的）相同的永久连接。如果存在，将直接使用这个连接；如果不存在，则建立一个新的连接。所谓“相同”的连接是指用相同的用户名和密码到相同主机的连接。]]></description>
										<content:encoded><![CDATA[<p><strong>PHP数据库永久连接</strong></p>
<p>永久的数据库连接是指在脚本结束运行时不关闭的连接。当收到一个永久连接的请求时。PHP 将检查是否已经存在一个（前面已经开启的）相同的永久连接。如果存在，将直接使用这个连接；如果不存在，则建立一个新的连接。所谓“相同”的连接是指用相同的用户名和密码到相同主机的连接。</p>
<p>对 web 服务器的工作和分布负载没有完全理解的读者可能会错误地理解永久连接的作用。特别的，永久连接不会在相同的连接上提供建立“用户会话”的能力，也不提供有效建立事务的能力。实际上，从严格意义上来讲，永久连接不会提供任何非永久连接无法提供的特殊功能。</p>
<p>为什么？</p>
<p>这和 web 服务器工作的方式有关。web 服务器可以用三种方法来利用 PHP 生成 web 页面。</p>
<p>第一种方法是将 PHP 用作一个“外壳”。以这种方法运行，PHP 会为向 web 服务器提出的每个 PHP 页面请求生成并结束一个 PHP 解释器线程。由于该线程会随每个请求的结束而结束，因此任何在这个线程中利用的任何资源（例如指向 SQL 数据库服务器的连接）都会随线程的结束而关闭。在这种情况下，使用永久连接不会获得任何地改变――因为它们根本不是永久的。</p>
<p>第二，也是最常用的方法，是把 PHP 用作多进程 web 服务器的一个模块，这种方法目前只适用于 Apache。对于一个多进程的服务器，其典型特征是有一个父进程和一组子进程协调运行，其中实际生成 web 页面的是子进程。每当客户端向父进程提出请求时，该请求会被传递给还没有被其它的客户端请求占用的子进程。这也就是说当相同的客户端第二次向服务端提出请求时，它将有可能被一个不同的子进程来处理。在开启了一个永久连接后，所有请求 SQL 服务的后继页面都能够重新使用这个已经建立的 SQL Server 连接。</p>
<p>最后一种方法是将 PHP 用作多线程 web 服务器的一个插件。目前 PHP 4 已经支持 ISAPI、WSAPI 和 NSAPI（在 Windows 环境下），这些使得 PHP 可以被用作诸如 Netscape FastTrack (iPlanet)、Microsoft&#8217;s Internet Information Server (IIS) 和 O&#8217;Reilly&#8217;s WebSite Pro 等多线程 web 服务器的插件。永久连接的行为和前面所描述的多过程模型在本质上是相同的。注意 PHP 3 不支持 SAPI。</p>
<p>如果永久连接并没有任何附加的功能，那么使用它有什么好处？</p>
<p>答案非常简单――效率。当客户端对 SQL 服务器的连接请求非常频繁时，永久连接将更加高效。连接请求频繁的标准取决于很多因素。例如，数据库的种类，数据库服务和 web 服务是否在同一台服务器上，SQL 服务器如何加载负载等。但我们至少知道，当连接请求很频繁时，永久连接将显著的提高效率。它使得每个子进程在其生命周期中只做一次连接操作，而非每次在处理一个页面时都要向 SQL 服务器提出连接请求。这也就是说，每个子进程将对服务器建立各自独立的永久连接。例如，如果有 20 个不同的子进程运行某脚本建立了永久的 SQL 服务器永久连接，那么实际上向该 SQL 服务器建立了 20 个不同的永久连接，每个进程占有一个。</p>
<p>注意，如果永久连接的子进程数目超过了设定的数据库连接数限制，系统将会产生一些缺陷。如果数据库的同时连接数限制为 16，而在繁忙会话的情况下，有 17 个线程试图连接，那么有一个线程将无法连接。如果这个时候，在脚本中出现了使得连接无法关闭的错误（例如无限循环），则该数据库的 16 个连接将迅速地受到影响。请查阅使用的数据库的文档，以获取关于如何处理已放弃的及闲置的连接的方法。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>phpMyAdmin配置安装全过程</title>
		<link>https://www.3code.cn/phpmyadmin/</link>
		
		<dc:creator><![CDATA[寒林]]></dc:creator>
		<pubDate>Sat, 21 Nov 2009 03:17:09 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP数据库操作]]></category>
		<guid isPermaLink="false">https://www.3code.cn/?p=584</guid>

					<description><![CDATA[phpMyAdmin安装配置教程傻瓜版，主要为phpMyAdmin 2.11.X 配置安装，其它版本安装方法一样。]]></description>
										<content:encoded><![CDATA[<p><strong>phpMyAdmin配置安装全过程</strong></p>
<p>phpMyAdmin安装配置教程傻瓜版，主要为phpMyAdmin 2.11.X 配置安装，其它版本安装方法一样。</p>
<p>1、先下载 phpMyAdmin 安装包<br />
2、解压后一个单独目录中（你可以自定义目录名称）<br />
3、找到 /libraries/config.default.php文件(旧版本是根目录下的config.inc.php文件)，用写字板（不要用记事本，这是UTF8编码）进行编辑。<br />
4、查找 $cfg[&#8216;PmaAbsoluteUri&#8217;]<br />
修改为你将上传到空间的phpMyAdmin的网址<br />
如：$cfg[&#8216;PmaAbsoluteUri&#8217;] = ‘https://www.3code.cn/phpmyadmin/’;<br />
5、查找 $cfg[&#8216;Servers&#8217;][$i][&#8216;host&#8217;] = ‘localhost’;（通常用默认，也有例外，可以不用修改）<br />
6、查找 $cfg[&#8216;Servers&#8217;][$i][&#8216;auth_type&#8217;] = ‘config’;<br />
在自己的机子里调试用config；如果在网络上的空间用cookie，这里我们既然在前面已经添加了网址，就修改成cookie ，这里建议使用cookie.<br />
7、查找 $cfg[&#8216;Servers&#8217;][$i][&#8216;user&#8217;] = ‘root’; // MySQL user（用户名,一般这里随便填几个字母就可以了; 特殊情况下，自己机里用root,在网上一般为你的ftp用户名,虚拟主机提供商会告诉你的,一般不要修改.）<br />
8、查找 $cfg[&#8216;Servers&#8217;][$i][&#8216;password&#8217;] = ”; // MySQL password (only needed 留空就可以了)<br />
9、查找 $cfg[&#8216;Servers&#8217;][$i][&#8216;only_db&#8217;] = ”; // If set to a db-name, only（你只有一个数据就设置一下,设置为你的数据库名；如果你想架设服务器，那么建议留空）<br />
10、查找 $cfg[&#8216;DefaultLang&#8217;] = ‘zh’; （这里是选择语言，zh代表简体中文的意思）<br />
11、查找$cfg[&#8216;blowfish_secret&#8217;],请在$cfg[&#8216;blowfish_secret&#8217;] = ‘ ‘;的等号里面设置你网站的cookie(cookie也就是访问phpmyadmin的域名)，例如：$cfg[&#8216;blowfish_secret&#8217;] = ‘www.3code.cn’;。<br />
12、设置完毕后保存，现在可以上传到网络空间上了， 浏览<a href="https://www.3code.cn/phpmyadmin/">https://www.3code.cn/phpmyadmin/</a> 测试一下。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PHP学习资料之PHP数据库操作类</title>
		<link>https://www.3code.cn/php-mysql-class/</link>
		
		<dc:creator><![CDATA[寒林]]></dc:creator>
		<pubDate>Tue, 10 Nov 2009 01:39:21 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP数据库操作]]></category>
		<category><![CDATA[php类]]></category>
		<guid isPermaLink="false">https://www.3code.cn/?p=352</guid>

					<description><![CDATA[PHP学习资料之PHP数据库操作类,PHP添加、删除、修改数据记录的方法 class]]></description>
										<content:encoded><![CDATA[<p><strong>PHP学习资料之PHP数据库操作类</strong></p>
<p>&lt;?php<br />
/*<br />
* 继承MyDd_MySql类.<br />
*/<br />
class MyDd_MySql extends DB_MYSQL {</p>
<p>/******************************<br />
* 插入记录<br />
* input parameter<br />
: $table        =&gt; 表名<br />
: $field    =&gt; 参数数组:$array[&#8216;字段名&#8217;] = 值.<br />
* out    parameter<br />
: ture or false<br />
******************************/<br />
function InsertDB($table, $field){<br />
$Afield = $this-&gt;metadata($table);<br />
$Sql = &#8220;INSERT INTO `$table`&#8221;;<br />
foreach($field as $key=&gt;$value){<br />
$fields .= &#8220;`$key`,&#8221;;<br />
foreach($Afield as $fname){<br />
if($fname[&#8216;name&#8217;]==$key){<br />
$Ftyle = $fname[&#8216;type&#8217;];<br />
break;<br />
}<br />
}<br />
if($Ftyle==&#8221;string&#8221;||$Ftyle==&#8221;blob&#8221;||$Ftyle==&#8221;date&#8221;) $values.=&#8221;&#8216;$value&#8217;,&#8221;;<br />
else $values.=&#8221;$value,&#8221;;<br />
}<br />
$fields = substr($fields, 0, -1);<br />
$values = substr($values, 0, -1);<br />
$Sql .= &#8221; (&#8220;.$fields.&#8221;)&#8221;;<br />
$Sql .= &#8221; VALUES (&#8220;.$values.&#8221;)&#8221;;<br />
//die($Sql);<br />
return $this-&gt;query($Sql);<br />
}</p>
<p>/******************************<br />
* 删除记录<br />
* input parameter<br />
: $table        =&gt; 表名<br />
: $where        =&gt; 删除条件<br />
* out    parameter<br />
true or false<br />
******************************/<br />
function DeleteDB($table, $where=&#8217;1&#8242;) {<br />
if(empty($table)) die(&#8220;table is empty!&#8221;);<br />
$deleteSql = &#8220;DELETE FROM `$table` WHERE $where&#8221;;<br />
return $this-&gt;query($deleteSql);<br />
}</p>
<p>/******************************<br />
* 更新记录<br />
* input parameter<br />
: $table        =&gt; 表名<br />
: $field    =&gt; 参数数组:$array[&#8216;字段名&#8217;] = 值.<br />
: $where        =&gt; 更新条件<br />
* out    parameter<br />
: ture or false<br />
******************************/<br />
function UpdateDB($table, $field, $where=&#8217;1&#8242;){<br />
$Afield = $this-&gt;metadata($table);<br />
$Sql = &#8220;UPDATE `$table` SET&#8221;;<br />
if(is_array($field)){<br />
foreach($field as $key =&gt; $var){<br />
foreach($Afield as $fname){<br />
if($fname[&#8216;name&#8217;]==$key){<br />
if($fname[&#8216;type&#8217;]==&#8221;string&#8221;||$fname[&#8216;type&#8217;]==&#8221;blob&#8221;||$fname[&#8216;type&#8217;]==&#8221;date&#8221;) $Sql.=&#8221; `$key`=&#8217;$var&#8217;,&#8221;;<br />
else $Sql.=&#8221; `$key`=$var,&#8221;;<br />
break;<br />
}<br />
}<br />
}<br />
$Sql = substr($Sql, 0, -1);<br />
}else{<br />
$Sql .= trim($field);<br />
}<br />
$Sql .= &#8216; WHERE &#8216;.$where;<br />
//die($Sql);<br />
return $this-&gt;query($Sql);<br />
}</p>
<p>/******************************<br />
* 查询记录<br />
* input parameter<br />
: $table        =&gt; 表名<br />
: $field        =&gt; 表字段<br />
: $where        =&gt; 查询条件<br />
: $order        =&gt; 排序方式<br />
: $limit        =&gt; 显示数目<br />
* out    parameter<br />
: $array        =&gt; 信息数组(二维数组)<br />
******************************/<br />
function SelectDB($table, $field=&#8221;, $where=&#8221;, $order=&#8221;, $limit=&#8221;){<br />
$Sql = &#8220;select &#8220;;<br />
if(is_array($field)){<br />
foreach ($field as $key){<br />
$felids .= &#8220;`$key`,&#8221;;<br />
}<br />
$felids = substr($felids, 0, -1);<br />
}else{<br />
$felids = &#8220;*&#8221;;<br />
}<br />
$Sql .= $felids.&#8221; from `&#8221;.$table.&#8221;` where 1&#8243;;<br />
if($where != &#8221;) $Sql .= &#8221; and &#8220;.$where;<br />
if($order != &#8221;) $Sql .= &#8221; order by &#8220;.$order;<br />
if($limit != &#8221;) $Sql .= &#8221; limit &#8220;.$limit;<br />
//die($Sql);<br />
$result = $this-&gt;query($Sql);<br />
$array = array();<br />
while($row = $this-&gt;fetch_array($result)){<br />
$array[] = $row;<br />
}<br />
return $array;<br />
}</p>
<p>/******************************<br />
* 统计数据总数<br />
* input parameter<br />
: $table            =&gt; 表名<br />
* out    parameter<br />
: $countArr[&#8216;num&#8217;]    =&gt; 返回条件数据总数<br />
******************************/<br />
function CountData($table, $where=&#8221;) {<br />
$countSql = &#8220;SELECT count(*) as num FROM $table&#8221;;<br />
$countSql .= ($where == &#8221;) ? &#8221; : &#8221; WHERE $where&#8221;;<br />
$countResult = $this-&gt;query($countSql);<br />
$countArr = $this-&gt;fetch_array($countResult);<br />
//die($countArr[&#8216;num&#8217;]);<br />
return $countArr[&#8216;num&#8217;];<br />
}</p>
<p>/******************************<br />
* 分页<br />
* input parameter<br />
: $pageNum            =&gt; 每页显示记录数<br />
: $table            =&gt; 表名<br />
: $where            =&gt; 查询条件<br />
* out    parameter<br />
: $limit            =&gt; 返回用于第二次查询的SQL中的limit部分<br />
******************************/<br />
function LimitStr($table, $pageNum=10, $where=&#8221;, $str=&#8217;str&#8217;, $view=true, $jump=true){<br />
global $tpl;<br />
//当前页码、每页显示数、开始记录<br />
$page = is_numeric($_GET[&#8216;page&#8217;]) ? $_GET[&#8216;page&#8217;] : 1;<br />
if($page&lt;1) $page = 1;<br />
$start = ($page-1)*$pageNum;<br />
$limit = &#8220;$start, $pageNum&#8221;;<br />
//记录总数<br />
$total = $this-&gt;CountData($table, $where);<br />
//分页字符串<br />
$PageObj = new PAGE($total, $pageNum);<br />
$pagestr = $PageObj-&gt;StartPage($str, $view, $jump);<br />
$tpl-&gt;set_var(&#8220;pagestr&#8221;, $pagestr); //替换模板分页变量<br />
//返回limt：$start,$pageNum<br />
return $limit;<br />
}</p>
<p>/*某一条记录*/<br />
function RecordOne($table, $where=&#8217;1&#8242;, $field=&#8217;*&#8217;){<br />
$sql = &#8216;select &#8216;.$field.&#8217; from &#8216;.$table.&#8217; where &#8216;.$where;<br />
$this-&gt;query($sql);<br />
$this-&gt;next_record();<br />
return $this-&gt;Record;<br />
}<br />
/*获取最大ID号*/<br />
function MaxID($table, $field=&#8217;id&#8217;){<br />
$sql = &#8216;select MAX(&#8216;.$field.&#8217;) as MaxId from &#8216;.$table;<br />
$this-&gt;query($sql);<br />
$this-&gt;next_record();<br />
return $this-&gt;Record[&#8216;MaxId&#8217;];<br />
}<br />
/*记录集数组*/<br />
function fetch_array($result){<br />
return mysql_fetch_array($result, MYSQL_ASSOC);<br />
}<br />
/*设置数据库字符集*/<br />
function SetNames($str){<br />
mysql_query(&#8220;set names &#8216;$str'&#8221;, $this-&gt;Link_ID);<br />
}<br />
/*输出SQL语句，调试之用*/<br />
function SQL($str){<br />
die($str);<br />
}</p>
<p>/*JS提示框*/<br />
function forward($msg, $methd=&#8221;, $url = &#8221;){<br />
$sStr = &#8220;&lt;script language=&#8217;javascript&#8217; type=&#8217;text/javascript&#8217;&gt;\n&#8221;;<br />
if($methd = &#8216;href&#8217; &amp;&amp; $url = &#8221;) die(&#8216;forward funciton is wrong！&#8217;);<br />
$sStr .= &#8221;    alert(&#8216;$msg!&#8217;); \n&#8221;;<br />
switch ($methd){<br />
case &#8220;href&#8221;:<br />
$sStr .= &#8221; location.href='&#8221;.$url.&#8221;&#8216;; \n&#8221;;<br />
break;<br />
case &#8220;close&#8221;:<br />
$sStr .= &#8221; self.close(); \n&#8221;;<br />
break;<br />
default:<br />
$sStr .= &#8221; history.go(-1); \n&#8221;;<br />
}<br />
$sStr .= &#8220;&lt;/script&gt;&#8221;;<br />
die($sStr);<br />
}</p>
<p>}//class End<br />
?&gt;</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
