用户名:
密 码:
 
 
软 件 安 装
软 件 知 识
经 验 技 巧
学 习 指 南
相 关 下 载
站内搜索
 
 
首页 >> PHP

PHP4与MySQL数据库操作函数详解(六)

作者:未知   时间:2004-06-28 16:00:57

(8) 取数据库名和表名(2个):

1、mysql_list_dbs()
格式: int mysql_list_dbs(int link_identifier);
取得所有可用的数据库名(database name)。

例子:

<?php
$connect = mysql_connect($host , $usr ,$pwd);
$dbs = mysql_list_dbs($connect);
$rows = mysql_num_rows($dbs);
echo ""database total : "".$rows;
$i = 0;
while($i<$rows)
{
$db_name[$i] = mysql_tablename($dbs , $i);
echo $db_name[$i];
$i++;
}
?>
即可依次显示出MySQL中所有的数据库名字(database name )。
Note : 相当于MySQL中的 show databases命令

2、mysql_list_tables()
格式:int mysql_list_tables(string database name);
显示该数据库下所有的表的名字Table name。

例子:

<?php
$connect = mysql_connect($host , $usr , $pwd);
$tables = mysql_list_tables(""mysql"");
$rows = mysql_num_rows($tables);
echo ""Table total : "".$rows;
$i = 0;
while($i<$rows)
{
$table_name[$i] = mysql_tablename($tables , $i);
echo $table_name[$i];
$i++;
}

?>

即可依次显示出mysql下所有的表的名字
Note : 相当于MySQL中的 show tables命令(先要用 use mysql命令选中1个数据库)

原作者:jetzhou830@citiz.net
来源:中国PHP自由联盟
蚐QL语句sqlquery,如失败则返回False。

例子:

<?php
$connect = mysql_connect($hostname , $user , $pwd);
$query = mysql_db_query($dbname , $sql , $connect);
if($query) echo ""Successed !"";
else echo ""Failed !"";
?>

mysql_db_query()与mysql_query()的区别就在于前者可以不用使用mysql_select_db()来选择数据库database,而在执行SQL语句的同时,进行选择数据库。

原作者:jetzhou830@citiz.net
来源:中国PHP自由联盟

访问将显示31。

后来,我自己做了一个调用SQL数据库的javabean,在PHP4中一切正常,大家可以自己去试,确实不错,从某种程度上,可以说,实现了“隐藏源代码”。

欢迎有兴趣的朋友交流。
e_handler (string open, string close, string read, string write, string destroy, string gc)

这个函数可以定义用户级的session的保存函数(打开、关闭、写入等)。
比如,我们想把session保存在本地的一个数据库中时,本函数就很有用了。

!!!注意:使用本函数前,先要配置php.ini文件,session.save_hadler=user ,否则,session_set_save_handler()不会生效。

此外,根据我的测试,你如果想让这样的session跨页面使用,还要在每一个用到session的脚本文件中加入你自定的函数及session_set_save_handler,所以,最好的方法是做成一个单独的文件,在每一个要用到session的脚本中用include来包含进来。

下面这个例子提供了一个最基本的session保存法,类似于默认的files方法。
如果你想用数据库来实现,这也是很容易做到的。

Example 1. session_set_save_handler() example

<?php

function open ($save_path, $session_name) {
global $sess_save_path, $sess_session_name;

$sess_save_path = $save_path;
$sess_session_name = $session_name;
return(true);
}

function close() {
return(true);
}

function read ($id) {
global $sess_save_path, $sess_session_name;

$sess_file = ""$sess_save_path/sess_$id"";
if ($fp = @fopen($sess_file, ""r"")) {
$sess_data = fread($fp, filesize($sess_file));
return($sess_data);
} else {
return("""");
}

}

function write ($id, $sess_data) {
global $sess_save_path, $sess_session_name;

$sess_file = ""$sess_save_path/sess_$id"";
if ($fp = @fopen($sess_file, ""w"")) {
return(fwrite($fp, $sess_data));
} else {
return(false);
}

}

function destroy ($id) {
global $sess_save_path, $sess_session_name;

$sess_file = ""$sess_save_path/sess_$id"";
return(@unlink($sess_file));
}

/*********************************************
* WARNING - You will need to implement some *
* sort of garbage collection routine here. *
*********************************************/
function gc ($maxlifetime) {
return true;
}

session_set_save_handler (""open"", ""close"", ""read"", ""write"", ""destroy"", ""gc"");

session_start();

// proceed to use sessions normally
// 现在你就可以象往常一样地使用session了。


?>


//***************************************

session_cache_limiter (PHP4 CVS only)

string session_cache_limiter ([string cache_limiter])

本函数可以设置或取得session.cache_limiter的值。
在php.ini中也可以做同样的设置。其值有 nocache,public,private。

本函数是通过HTTP的header发送到客户端的。如果为nocache,将禁止任何客户端的cache。而public将允许cache,但是private相对public而言,更为安全一点。

缺省值是在php.ini中的设置,如果你要使用它,必须在每次调用session_start()之前调用本函数。

此函数现在只能在CVS模式下运行,但是PHP4.0.3将支持它。


Example 1. session_cache_limiter() examples

<?php

# set the cache limiter to 'private'

session_cache_limiter('private);
$cache_limiter = session_cache_limiter();

echo ""The cache limiter is now set to $cache_limiter<p>"";
?>

//*****************************

好了,关于session的函数先介绍到这。如果有任何问题,请与我联系。
ycshowtop@21cn.com
14, 250, 216, 168, 194, 80, 91,
194, 36, 131, 143, 132, 85, 180, 64, 4, 7,
24, 176, 87, 18, 115, 216, 129, 69, 46, 163,
73, 74, 207, 0, 155, 110, 169, 2, 15, 52,
4, 107, 77, 88, 151, 213, 176, 67, 98, 53,
24, 148, 19, 78, 47, 180, 48, 147, 91, 248,
172, 96, 146, 4, 38, 210, 227, 106, 4, 28,
168, 166, 157, 119, 179, 212, 49, 91, 109, 183,
57, 169, 43, 34, 9, 176, 136, 2, 101, 39,
28, 19, 255, 217, 87, 89, 225, 208, 219, 9,
60, 25, 116, 208, 102, 156, 177, 192, 89, 169,
44, 228, 235, 194, 0, 85, 85, 36, 206, 5,
27, 100, 139, 87, 6, 173, 113, 40, 203, 44,
177, 77, 161, 48, 126, 84, 148, 98, 219, 129,
163, 140, 82, 8, 3, 33, 208, 80, 192, 2,
29, 8, 90, 146, 165, 246, 114, 214, 86, 10,
49, 48, 215, 236, 114, 156, 181, 16, 0, 1,
7, 104, 160, 178, 202, 7, 196, 74, 240, 118,
6, 199, 252, 26, 19, 226, 73, 97, 199, 41,
251, 81, 216, 159, 127, 60, 247, 220, 179, 206,
2, 162, 146, 138, 42, 97, 80, 80, 198, 121,
27, 202, 172, 180, 125, 177, 221, 1, 98, 30,
124, 84, 248, 7, 196, 18, 23, 98, 117, 60,
14, 52, 210, 73, 131, 144, 68, 178, 53, 215,
33, 12, 144, 139, 195, 167, 4, 61, 52, 145,
70, 163, 195, 221, 210, 73, 120, 72, 1, 71,
76, 142, 72, 98, 110, 83, 49, 176, 181, 36,
151, 128, 169, 55, 9, 47, 46, 100, 210, 73,
129, 142, 192, 32, 36, 13, 244, 235, 106, 41,
66, 14, 249, 133, 145, 107, 27, 220, 151, 3,
80, 3, 24, 238, 96, 227, 34, 208, 193, 37,
38, 108, 236, 150, 189, 50, 164, 26, 106, 170,
212, 144, 154, 105, 54, 219, 116, 2, 66, 2,
164, 249, 139, 248, 144, 230, 164, 233, 93, 173,
182, 72, 30, 105, 229, 188, 116, 240, 255, 193,
61, 249, 32, 163, 140, 52, 0, 5, 212, 251,
157, 206, 88, 115, 77, 160, 218, 64, 244, 1,
234, 33, 185, 106, 38, 24, 173, 164, 241, 134,
28, 236, 132, 120, 91, 181, 180, 39, 18, 2,
223, 185, 39, 195, 251, 239, 3, 149, 85, 208,
188, 210, 50, 244, 229, 67, 145, 56, 208, 170,
2, 165, 176, 82, 133, 235, 72, 40, 169, 71,
147, 212, 87, 175, 136, 8, 184, 239, 211, 238,
51, 189, 99, 105, 103, 239, 7, 81, 163, 211,
240, 95, 2, 211, 138, 88, 213, 42, 113, 40,
140, 81, 73, 224, 200, 3, 102, 39, 191, 111,
192, 233, 36, 167, 178, 212, 62, 114, 16, 131,
59, 229, 196, 70, 52, 97, 14, 159, 228, 181,
37, 82, 193, 32, 71, 38, 88, 1, 79, 118,
96, 131, 28, 196, 111, 34, 232, 99, 0, 25,
54, 178, 31, 143, 52, 112, 30, 25, 43, 201,
10, 132, 35, 28, 172, 24, 5, 25, 157, 170,
1, 78, 60, 231, 140, 180, 12, 43, 83, 42,
24, 11, 64, 248, 81, 0, 55, 165, 144, 96,
8, 108, 31, 84, 0, 113, 194, 23, 34, 160,
0, 149, 50, 198, 49, 104, 128, 2, 30, 220,
80, 7, 88, 140, 140, 149, 126, 39, 170, 97,
233, 131, 6, 167, 202, 193, 157, 10, 101, 130,
5, 32, 202, 34, 6, 208, 128, 172, 216, 80,
171, 91, 49, 177, 137, 242, 187, 138, 22, 107,
240, 27, 77, 57, 255, 6, 139, 193, 90, 198,
12, 98, 130, 3, 121, 45, 171, 6, 138, 153,
73, 91, 74, 226, 150, 50, 158, 175, 20, 7,
184, 206, 182, 218, 48, 1, 58, 252, 37, 11,
186, 128, 163, 174, 20, 80, 18, 107, 192, 96,
130, 84, 202, 1, 30, 129, 85, 131, 96, 33,
68, 89, 51, 176, 224, 102, 242, 117, 170, 98,
100, 234, 80, 32, 81, 30, 106, 56, 144, 151,
35, 201, 98, 14, 84, 248, 75, 96, 34, 249,
194, 4, 240, 141, 5, 50, 64, 215, 20, 143,
113, 63, 116, 133, 242, 32, 161, 180, 65, 78,
58, 67, 74, 123, 185, 101, 95, 39, 44, 13,
3, 48, 144, 45, 109, 21, 140, 67, 176, 241,
214, 183, 166, 134, 27, 73, 210, 3, 2, 36,
160, 76, 10, 166, 148, 21, 207, 225, 169, 55,
241, 154, 151, 141, 102, 68, 35, 12, 110, 46,
20, 170, 99, 64, 4, 238, 162, 154, 236, 60,
147, 109, 69, 136, 166, 194, 230, 25, 1, 2,
25, 168, 154, 148, 243, 69, 185, 122, 3, 66,
205, 229, 43, 131, 43, 64, 215, 140, 116, 194,
172, 231, 44, 7, 131, 1, 176, 14, 118, 84,
102, 128, 151, 185, 18, 158, 223, 161, 25, 20,
200, 67, 81, 50, 200, 6, 12, 14, 35, 144,
109, 40, 37, 168, 204, 245, 109, 37, 1, 8,
41, 1, 50, 96, 0, 3, 180, 236, 164, 45,
43, 41, 193, 208, 0, 51, 136, 186, 244, 165,
255, 48, 141, 105, 76, 193, 227, 132, 132, 89,
1, 42, 66, 3, 154, 78, 129, 38, 180, 46,
148, 35, 67, 71, 99, 233, 67, 101, 170, 52,
137, 74, 225, 10, 57, 219, 153, 207, 252, 99,
182, 46, 104, 225, 1, 123, 136, 80, 132, 0,
52, 161, 166, 122, 161, 104, 65, 77, 26, 81,
35, 58, 7, 252, 56, 138, 66, 60, 139, 218,
128, 10, 116, 207, 136, 225, 179, 0, 2, 24,
193, 215, 184, 198, 181, 145, 144, 96, 28, 168,
160, 80, 79, 175, 218, 138, 39, 104, 117, 171,
70, 136, 166, 29, 158, 118, 139, 62, 204, 146,
68, 37, 178, 26, 69, 6, 176, 86, 72, 76,
226, 176, 136, 141, 4, 216, 6, 48, 10, 3,
253, 33, 174, 22, 82, 92, 93, 239, 42, 211,
110, 237, 53, 114, 21, 120, 192, 44, 171, 102,
205, 68, 56, 160, 3, 221, 16, 134, 37, 50,
49, 2, 48, 53, 228, 180, 95, 50, 222, 39,
6, 96, 8, 171, 9, 194, 97, 115, 93, 69,
218, 156, 247, 210, 190, 20, 0, 68, 124, 24,
81, 53, 221, 20, 12, 72, 172, 168, 163, 167,
61, 201, 103, 242, 101, 204, 124, 193, 128, 33,
165, 227, 17, 242, 18, 33, 138, 32, 165, 98,
21, 172, 112, 69, 227, 160, 217, 213, 219, 134,
40, 179, 147, 235, 236, 60, 42, 32, 9, 76,
128, 9, 70, 46, 146, 32, 5, 251, 129, 144,
231, 88, 35, 95, 200, 221, 255, 209, 7, 32,
240, 13, 81, 172, 110, 21, 97, 144, 46, 117,
105, 17, 187, 10, 232, 54, 159, 186, 74, 0,
4, 236, 1, 163, 236, 117, 106, 26, 161, 210,
210, 150, 170, 113, 141, 15, 134, 137, 65, 99,
154, 135, 50, 189, 80, 14, 35, 113, 11, 118,
76, 154, 158, 118, 67, 18, 12, 146, 228, 131,
155, 85, 250, 199, 239, 162, 49, 224, 243, 146,
110, 27, 198, 91, 174, 130, 149, 71, 142, 191,
56, 88, 22, 24, 136, 222, 30, 30, 32, 152,
9, 79, 37, 18, 196, 200, 199, 127, 183, 167,
191, 253, 161, 69, 85, 94, 2, 19, 136, 59,
81, 56, 165, 148, 201, 1, 204, 107, 222, 116,
143, 208, 200, 53, 73, 78, 92, 78, 60, 68,
8, 44, 204, 203, 251, 245, 49, 127, 4, 49,
203, 141, 55, 99, 146, 211, 22, 143, 19, 32,
112, 241, 33, 126, 60, 155, 11, 208, 150, 86,
24, 184, 237, 30, 26, 192, 192, 36, 31, 130,
126, 248, 152, 210, 150, 160, 241, 100, 40, 19,
196, 143, 128, 244, 210, 248, 74, 7, 130, 4,
147, 73, 28, 103, 42, 195, 144, 135, 64, 95,
61, 120, 68, 203, 79, 186, 94, 154, 169, 20,
42, 55, 119, 15, 120, 3, 166, 50, 241, 180,
193, 137, 30, 31, 82, 157, 99, 152, 213, 17,
40, 208, 0, 63, 47, 0, 208, 110, 138, 161,
140, 147, 21, 141, 58, 213, 88, 89, 49, 64,
75, 78, 255, 116, 98, 141, 160, 128, 176, 33,
194, 33, 129, 164, 82, 120, 64, 54, 88, 23,
126, 102, 238, 197, 3, 57, 182, 143, 29, 254,
18, 79, 214, 184, 73, 48, 49, 179, 195, 208,
201, 32, 27, 66, 209, 73, 13, 110, 224, 2,
76, 35, 64, 121, 43, 76, 32, 30, 200, 108,
236, 64, 147, 164, 99, 10, 129, 17, 13, 200,
130, 39, 197, 12, 37, 0, 32, 0, 128, 9,
88, 160, 107, 101, 17, 216, 192, 42, 144, 65,
40, 219, 101, 62, 68, 49, 229, 9, 27, 193,
131, 11, 99, 205, 139, 145, 128, 215, 5, 217,
246, 12, 12, 148, 177, 3, 100, 212, 64, 7,
156, 154, 129, 64, 228, 229, 71, 177, 228, 0,
27, 48, 106, 129, 75, 138, 130, 131, 164, 152,
155, 1, 78, 112, 245, 126, 152, 205, 110, 94,
64, 128, 24, 156, 139, 201, 10, 54, 197, 174,
100, 196, 68, 147, 235, 122, 198, 14, 133, 55,
19, 75, 137, 241, 37, 200, 64, 37, 153, 12,
212, 80, 73, 27, 129, 2, 101, 107, 83, 195,
17, 81, 129, 74, 5, 139, 6, 60, 168, 35,
14, 249, 97, 165, 0, 63, 3, 79, 247, 214,
7, 190, 79, 149, 239, 23, 224, 128, 7, 4,
164, 139, 69, 46, 16, 43, 147, 23, 225, 2,
5, 208, 2, 153, 115, 213, 112, 5, 72, 41,
50, 157, 68, 129, 24, 113, 64, 42, 117, 105,
145, 44, 221, 187, 177, 90, 216, 226, 255, 150,
23, 8, 51, 6, 52, 96, 0, 166, 175, 149,
29, 163, 19, 33, 73, 183, 90, 122, 179, 167,
34, 199, 110, 106, 74, 56, 157, 18, 11, 22,
153, 33, 196, 59, 113, 152, 26, 129, 180, 81,
166, 146, 5, 148, 7, 156, 241, 85, 215, 57,
192, 80, 149, 128, 118, 55, 50, 61, 214, 3,
80, 1, 212, 73, 85, 199, 95, 173, 139, 93,
48, 225, 244, 168, 113, 82, 35, 143, 1, 177,
45, 134, 188, 179, 10, 85, 211, 202, 61, 15,
65, 14, 72, 191, 2, 36, 15, 239, 196, 2,
160, 128, 5, 150, 156, 210, 88, 96, 146, 149,
80, 222, 96, 143, 57, 168, 6, 168, 149, 213,
130, 122, 213, 49, 124, 102, 244, 49, 41, 10,
16, 176, 13, 8, 126, 240, 121, 133, 229, 35,
113, 133, 95, 249, 217, 242, 146, 53, 208, 84,
13, 82, 160, 169, 199, 56, 31, 6, 232, 210,
161, 228, 119, 61, 74, 82, 194, 160, 45, 48,
8, 5, 10, 93, 37, 129, 85, 174, 6, 248,
109, 19, 190, 44, 37, 236, 68, 195, 132, 251,
5, 232, 114, 62, 100, 216, 245, 174, 95, 102,
198, 130, 181, 39, 46, 207, 221, 130, 130, 220,
183, 87, 28, 17, 216, 64, 106, 190, 15, 126,
70, 194, 114, 54, 55, 67, 126, 242, 131, 77,
37, 129, 46, 89, 132, 69, 158, 130, 3, 59,
208, 27, 252, 102, 119, 205, 226, 49, 245, 50,
67, 250, 34, 0, 255, 34, 134, 8, 64, 194,
0, 5, 112, 0, 251, 167, 70, 239, 68, 31,
239, 225, 85, 211, 148, 93, 180, 147, 0, 34,
96, 2, 218, 4, 25, 66, 20, 42, 239, 146,
25, 6, 241, 128, 52, 17, 28, 251, 160, 119,
150, 130, 2, 200, 3, 36, 165, 0, 43, 2,
227, 123, 45, 181, 52, 221, 34, 27, 33, 120,
79, 116, 243, 36, 11, 16, 2, 148, 65, 3,
184, 132, 73, 133, 210, 130, 232, 210, 39, 228,
68, 28, 207, 33, 28, 157, 17, 20, 18, 128,
127, 119, 177, 80, 218, 209, 127, 50, 35, 79,
243, 148, 31, 83, 3, 88, 65, 72, 15, 67,
216, 27, 217, 192, 49, 29, 51, 35, 43, 240,
46, 207, 209, 44, 207, 81, 80, 58, 17, 127,
38, 225, 2, 24, 160, 1, 216, 145, 29, 14,
229, 121, 48, 245, 30, 9, 179, 133, 13, 243,
48, 101, 21, 88, 87, 131, 8, 11, 48, 2,
39, 208, 2, 112, 146, 57, 196, 213, 22, 51,
52, 28, 103, 88, 2, 109, 232, 132, 6, 85,
121, 38, 147, 70, 120, 177, 50, 177, 178, 29,
118, 136, 87, 66, 32, 81, 121, 88, 81, 117,
112, 49, 26, 69, 86, 7, 130, 11, 6, 210,
0, 37, 232, 81, 248, 64, 134, 167, 2, 129,
156, 33, 82, 41, 67, 137, 41, 213, 80, 239,
209, 129, 152, 24, 11, 52, 53, 30, 156, 88,
30, 102, 0, 31, 186, 56, 1, 236, 81, 82,
30, 190, 248, 139, 42, 181, 82, 66, 133, 133,
179, 232, 129, 52, 85, 83, 230, 145, 140, 202,
184, 140, 230, 161, 139, 195, 120, 137, 108, 19,
4, 0, 59, 0 };

t;$last</td>
<td>$free</td>
</tr>"";

} // while循环结束
echo ""</table>"";
}
else
{
echo ""No data."";
} // if结束($result)
}
else
{
echo ""No UserName Entered. Please go back and reenter UserName"";
} // if结束($UserName)

echo ""<p></p>"";

include ('links.x');

?>

</body>
</html>--------------------------------------------------------------------------------
解释:

  这一部分包含两个主要部分。第一部分从前一个表单中得到数据,并将它们插入到数据库中。第二部分
从数据库中打印出表的内容。第二部分同我在查看数据库部分中所演示的一样。

  第一部分:

  首先我们象通常一样使用mysql_connect()来同数据库连接。

  然后我们使用下面查询:

$query = ""insert into tbl values ('$idx','$','$LastName','$FreeText')"";

  这个查询使用从前面表单传递过来的$idx,$UserName,$LastName和$FreeTExt变量,并将它们插入到
tbl表中。

  注意,我在脚本中所作的注释。使用一个注释可以用""//"",服务器将忽略此行的后面部分。

  简单,不是吗?

  从数据库中编辑一条记录:

  让我们假设一下,我们想修改数据库中存在的记录。在前面,我们看到有一个叫set的SQL命令用来设置
数据库中存在字段的值。我们将使用这个命令来修改数据库中的整条记录。

  考虑下面的脚本:
--------------------------------------------------------------------------------
edit.php3:

<html>
<head><title>Editing an entry from the database</title>
</head>

<body bgcolor=#ffffff>
<h1>Edit an entry</h1

<?

mysql_connect() or die (""Problem connecting to DataBase"");
$query = ""select * from tbl"";
$result = mysql_db_query(""example"", $query);

if ($result)
{
echo ""Found these entries in the database:<br>"";
echo ""<table width=90% align=center border=1><tr>
<td align=center bgcolor=#00ffff>idx</td>
<td align=center bgcolor=#00FFFF>User Name</td>
<td align=center bgcolor=#00FFFF>Last Name</td>
<td align=center bgcolor=#00FFFF>Free Text</td>
</tr>"";

while ($r = mysql_fetch_array($result))
{
$idx = $r[""idx""];
$user = $r[""UserName""];
$last = $r[""LastName""];
$text = $r[""FreeText""];

echo ""<tr>
<td align=center>
<a href=""editing.php3?idx=$idx&user=$user&last=$last&text=$text"">$idx</a></td>
<td>$user</td>
<td>$last</td>
<td>$text</td>
</tr>"";

}
echo ""</table>"";
}
else
{
echo ""No data."";
}

mysql_free_result($result);
include ('links.x');

?>

</body>
</html>--------------------------------------------------------------------------------
  如你所见,这里的代码有些熟悉。第一部分只是打印出数据库中表的内容。注意,有一行不太一样:

<a href=""editing.php3?idx=$idx&user=$user&last=$last&text=$text"">$idx</a>

  这一行建立了一个到editing.php3的一个链接,并且给新的脚本传递了一些变量。同表单方式很象,只
是使用的是链接。我们将信息转换成:变量和值。注意,为了打印出 "" 符号,我们需要使用 ""否则服务器
将把它看成PHP脚本的一部分并且作为被打印的信息。

  我们想将数据库中的记录全部转换到过,这样我们就可以得到表中的确切的数据,以便我们修改它容易
一些。

--------------------------------------------------------------------------------
Editing.php3:

<html>
<head><title>Editing an entry</title>
</head>

<body bgcolor=#ffffff>
<h1>Editing an entry</h1>
<form method=""post"" action=""editdb.php3"">

<table width=90% align=center>

<tr><td>idx:</td><td><?php echo ""$idx"";?></td></tr>

<tr><td>UserName:</td><td><input type=text name=UserName size=40 maxlength=100
value=""<?php echo ""$user"";?>""></td></tr>

<tr><td>LastName:</td><td><input type=text name=LastName size=40 maxlength=100
value=""<?php echo ""$last"";?>""></td></tr>

<tr><td>Free Text:</td><td><input type=text name=FreeText size=40 maxlength=100
value=""<?php echo ""$text"";?>""></td></tr>

<tr><td></td><td><input type=submit value=""Edit it!""></td></tr></table>

<input type=hidden name=idx value=""<?php echo ""$idx"";?>"">

</form>

<?php include ('links.x');?>
</body>
</html>--------------------------------------------------------------------------------
  好,这个脚本很简单。我们要关心的是,当表单打印出来时,它记录了当前记录的数据,通过在 <input
type= > 命令中的value属性。这些数据是从前一个页面传递过来的。

  现在,如果我们不改变记录的信息,它将传回当前值,即缺省值。如果我们改变了字段的值,字段的值
将变成新的值。接着我们可以将新值传给另一个脚本,它将会改变MySQL表中的值。

--------------------------------------------------------------------------------
editdb.php3:

<?php

mysql_connect() or die (""Problem connecting to DataBase"");

$query = ""update tbl set
idx='$idx',UserName='$UserName',LastName='$LastName',FreeText='$FreeText' where
idx='$idx'"";

$result = mysql_db_query(""example"", $query);
$query = ""SELECT * FROM tbl"";
$result = mysql_db_query(""example"", $query);

if ($result)
{
echo ""Found these entries in the database:<br><p></p>"";
echo ""<table width=90% align=center border=1><tr>
<td align=center bgcolor=#00FFFF>idx</td>
<td align=center bgcolor=#00FFFF>User Name</td>
<td align=center bgcolor=#00FFFF>Last Name</td>
<td align=center bgcolor=#00FFFF>Free Text</td>
</tr>"";

while ($r = mysql_fetch_array($result))
{
$idx = $r[""idx""];
$user = $r[""UserName""];
$last = $r[""LastName""];
$text = $r[""FreeText""];

echo ""<tr>
<td>$idx</td>
<td>$user</td>
<td>$last</td>
<td>$text</td>
</tr>"";

}
echo ""</table>"";
}
else
{
echo ""No data."";
}

mysql_free_result($result);

include ('links.x');

?>--------------------------------------------------------------------------------
  基本上要关心的一件事情是下面一行:

$query = ""update tbl set idx='$idx',UserName='$UserName',LastName='$LastName',FreeText='$FreeText' where idx='$idx'"";

  注意,它与我们在前面MySQL部分解释的语法相同。另一件事,注意这个脚本改变的是idx=$idx的记录,
如果表中有多条idx等于$idx的记录,所以这些记录都将被改变。如果我们想更严格一些,我们可以象下面
改动一下where子句:

$query = ""update tbl set idx='$idx',UserName='$UserName', LastName='$LastName',FreeText='$FreeText' where idx='$idx' and UserName='$UserName' and LastName='$LastName' and FreeText='$FreeText'"";

  这个语法将检查所有的字段,而不仅仅是检查idx。

  从数据库中删除一条记录:

  好,删除很容易。我们仍然需要两个脚本:一个用来选择要删除的记录(基本上同上面选择要编辑的记
录一样),一个用来真正地进行删除和打印新的表格。

--------------------------------------------------------------------------------
del.php3:

<html>
<head><title>Deleting an entry from the database</title>
</head>

<body bgcolor=#ffffff>
<h1>Del an entry</h1>

<?

mysql_connect() or die (""Problem connecting to DataBase"");
$query = ""select * from tbl"";
$result = mysql_db_query(""example"", $query);

if ($result)
{
echo ""Found these entries in the database:<br><p></p>"";
echo ""<table width=90% align=center border=1><tr>
<td align=center bgcolor=#00ffff>idx</td>
<td align=center bgcolor=#00FFFF>User Name</td>
<td align=center bgcolor=#00FFFF>Last Name</td>
<td align=center bgcolor=#00FFFF>Free Text</td>
</tr>"";

while ($r = mysql_fetch_array($result))
{
$idx = $r[""idx""];
$user = $r[""UserName""];
$last = $r[""LastName""];
$text = $r[""FreeText""];

echo ""<tr>
<td align=center>
<a href=""dele.php3?
idx=$idx&UserName=$user&LastName=$last&FreeText=$text"">$idx</a></td>
<td>$user</td>
<td>$last</td>
<td>$dtext</td>
</tr>"";

}
echo ""</table>"";
}
else
{
echo ""No data."";
}

mysql_free_result($result);
include ('links.x');

?>

</body>
</html>
--------------------------------------------------------------------------------
  这个脚本与我们用过的编辑脚本很象,所以可以看一下那里的说明。

--------------------------------------------------------------------------------
dele.php3:

<?php

mysql_connect() or die (""Problem connecting to DataBase"");
$query = ""delete from tbl where idx='$idx' and UserName='$UserName' and
LastName='$LastName' and FreeText='$FreeText'"";

$result = mysql_db_query(""example"", $query);
$query = ""SELECT * FROM tbl"";
$result = mysql_db_query(""example"", $query);

if ($result)
{
echo ""Found these entries in the database:<br><p></p>"";
echo ""<table width=90% align=center border=1><tr>
<td align=center bgcolor=#00FFFF>idx</td>
<td align=center bgcolor=#00FFFF>User Name</td>
<td align=center bgcolor=#00FFFF>Last Name</td>
<td align=center bgcolor=#00FFFF>Free Text</td>
</tr>"";

while ($r = mysql_fetch_array($result))
{
$idx = $r[""idx""];
$user = $r[""UserName""];
$last = $r[""LastName""];
$text = $r[""FreeText""];

echo ""<tr>
<td>$idx</td>
<td>$user</td>
<td>$last</td>
<td>$text</td>
</tr>"";

}
echo ""</table>"";
}
else
{
echo ""No data."";
}

mysql_free_result($result);

include ('links.x');

?>--------------------------------------------------------------------------------
  这个脚本看上去很熟悉,唯一不同的就是删除查询的语法:

$query = ""delete from tbl where idx='$idx' and UserName='$UserName' and LastName='$LastName' and FreeText='$FreeText'"";

  这个查询将会删除所有与前面的脚本传递来的信息相配匹的记录。容易吧。

  好了,这就是全部内容了。

转自WeberDev.com

[ 责编:felixsun 点击: ]

浏览评论 | 发给好友 | 打印版本

 相关文章


Copyright © 2004 SunCN.Net All rights reserved. 阳光网络 版权所有 Power by iWPC