本函数将字符串 string 的第 start 位起的字符串取出 length 字符。若 start 为负数,则从字符串尾端算起。若可省略的参数 length 存在,但为负数,则表示取到倒数第 length 个字符。
5. 查询资料(选取你要的)
$sql = "SQL语法放在这里";
$conn=
mysql_connect( $host, $user, $pass);
// 单词查询:mysql_
connect
/*
mysql_connect -- 打开一个到 MySQL 服务器的连接
如果成功则返回一个 MySQL 连接标识,失败则返回 FALSE。
mysql_connect() 建立一个到 MySQL 服务器的连接。当没有提供可选参数时使用以下默认值:server = 'localhost:3306',username = 服务器进程所有者的用户名,password = 空密码。
server 参数可以包括端口号。例如 "hostname:port" 或者是到本地套接字的路径,例如本机上的 ":/path/to/socket"。
注: 无论指定 "localhost" 或者 "localhost:port" 作为 server,MySQL 客户端库将覆盖之并尝试连接到本地套接字(Windows 中的名字管道)。如果希望使用 TCP/IP 连接,用 "127.0.0.1" 替代 "localhost"。如果 MySQL 客户端库试图连接到错误的本地套接字,则应该在 PHP 配置中将 mysql.
default_host 设为正确的路径并使 server 字段为空。
":port" 的支持是 PHP 3.0B4 起加入的。
":/
path/to/
socket" 的支持是 PHP 3.0.10 起加入的。
可以在函数名前加上 @ 来抑制失败时产生的错误信息。
如果用同样的参数第二次调用 mysql_connect(),将不会建立新连接,而将返回已经打开的连接标识。参数 new_link 改变此行为并使 mysql_connect() 总是打开新的连接,甚至当 mysql_connect() 曾在前面被用同样的参数调用过。参数 client_flags 可以是以下常量的组合:MYSQL_CLIENT_COMPRESS,MYSQL_CLIENT_IGNORE_SPACE 或者 MYSQL_CLIENT_INTERACTIVE。
注: new_link 参数自 PHP 4.2.0 起可用。
client_flags 参数自 PHP 4.3.0 起可用。
一旦脚本结束,到服务器的连接就会被关闭。除非之前已经调用了 mysql_close() 来关闭它。
*/
// -----------------------------------------------------------------------------------------
mysql_select_db($database,$conn);
/*
如果成功则返回 TRUE,失败则返回 FALSE。
mysql_select_db() 设定与指定的连接标识符所关联的服务器上的当前激活数据库。如果没有指定连接标识符,则使用上一个打开的连接。如果没有打开的连接,本函数将无参数调用 mysql_connect() 来尝试打开一个并使用之。
每个其后的 mysql_query() 调用都会作用于活动数据库。
*/
// -----------------------------------------------------------------------------------------
mysql_insert_id()
// -----------------------------------------------------------------------------------------
mysql_insert_id -- 取得上一步 INSERT 操作产生的 ID
mysql_insert_id() 返回给定的 link_identifier 中上一步 INSERT 查询中产生的 AUTO_
INCREMENT 的 ID 号。如果没有指定 link_identifier,则使用上一个打开的连接。
如果上一查询没有产生 AUTO_INCREMENT 的值,则 mysql_insert_id() 返回 0。如果需要保存该值以后使用,要确保在产生了值的查询之后立即调用 mysql_insert_id()。
注: MySQL 中的 SQL 函数 LAST_INSERT_ID() 总是保存着最新产生的 AUTO_INCREMENT 值,并且不会在查询语句之间被重置。
// -----------------------------------------------------------------------------------------
$result =
mysql_query($sql);
// 单词查询: mysql_
query
/*
mysql_query -- 发送一条 MySQL 查询
mysql_query() 向与指定的连接标识符关联的服务器中的当前活动数据库发送一条查询。如果没有指定 link_identifier,则使用上一个打开的连接。如果没有打开的连接,本函数会尝试无参数调用 mysql_connect() 函数来建立一个连接并使用之。查询结果会被缓存。
注: 查询字符串不应以分号结束。
mysql_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。对于其它类型的 SQL 语句,mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。非 FALSE 的返回值意味着查询是合法的并能够被服务器执行。这并不说明任何有关影响到的或返回的行数。 很有可能一条查询执行成功了但并未影响到或并未返回任何行。
如果没有权限访问查询语句中引用的表时,mysql_query() 也会返回 FALSE。
假定查询成功,可以调用 mysql_num_rows() 来查看对应于 SELECT 语句返回了多少行,或者调用 mysql_affected_rows() 来查看对应于 DELETE,INSERT,REPLACE 或 UPDATE 语句影响到了多少行。
仅对 SELECT,SHOW,DESCRIBE 或 EXPLAIN 语句 mysql_query() 才会返回一个新的结果标识符,可以将其传递给 mysql_fetch_array() 和其它处理结果表的函数。处理完结果集后可以通过调用 mysql_free_result() 来释放与之关联的资源,尽管脚本执行完毕后会自动释放内存。
*/
// -----------------------------------------------------------------------------------------
mysql_close($conn);
6. 新增、删除、修改
$sql = "DELETE FROM gbook WHERE id = '$id' "; // '$id' 要加单引号
新增 SQL 语句:
INSERT INTO `gbook` ('id' , `name` , `sex` , `email` , `info` , `ip` , `time_at` ) VALUES (NULL , '$name', '$sex', '$email', '$info', '$ip', NOW( ) )"
可以改写为:
INSERT INTO gbook VALUES (NULL,'$name', '$sex', '$email', '$info', '$ip', NOW( ) )
在这里的 id 是主键,并且是自动编号。如果是使用上面的简写,必须要用 NULL 来代替它,不能将它写为 '' (两个单引号) ,或是为空。要不然,是无法将数据加入数据库
// -----------------------------------------------------------------------------------------
$sql = "SQL语法放在这里";
$conn=
mysql_connect( $host, $user, $pass );
$result=
mysql_db_query( $database, $sql ,$conn);
/*
mysql_db_query -- 发送一条 MySQL 查询
根据查询结果返回一个正的 MySQL 结果资源号,出错时返回 FALSE。本函数会对 INSERT/UPDATE/DELETE 查询返回 TRUE/FALSE 来指示成功或失败。
mysql_db_query() 选择一个数据库并在其上执行查询。如果没有提供可选的连接标识,本函数会去找一个到 MySQL 服务器的已打开的连接,如果找不到已打开连接则会尝试无参数调用 mysql_connect() 来建立一个。
注意此函数不会切换回先前连接到的数据库。换句话说,不能用此函数临时在另一个数据库上执行 sql 查询,只能手工切换回来。强烈建议用户在 sql 查询中使用 database.table 语法来替代此函数。
注: 自 PHP 4.0.6 起不提倡使用此函数。不要用此函数,用 mysql_select_db() 和 mysql_query() 来替代。
*/
// -----------------------------------------------------------------------------------------
$row=
mysql_fetch_row($result);
// 单词查询:mysql_
fetch_
row
从最早的一笔记录开始输出
/*
返回根据所取得的行生成的数组,如果没有更多行则返回 FALSE。
mysql_fetch_row() 从和指定的结果标识关联的结果集中取得一行数据并作为数组返回。每个结果的列储存在一个数组的单元中,偏移量从 0 开始。
依次调用 mysql_fetch_row() 将返回结果集中的下一行,如果没有更多行则返回 FALSE。
注: 本函数返回的字段名是区分大小写的。
1. $r=mysql_fetch_row($result) 可以把当前记录以数组形式放到当前$r中,这样就可以通过$name=$r[0];和$pwd=$r[1];去取里面的值了,而执行完$r=mysql_fetch_row($result)后,指针会自动指向下一条记录,这样就可以利用WHILE循环把$result中的所有记录全都取出来了。不过这段代码本身有BUG,你只要记住这样的结构就可以了。
while ($r=mysql_fetch_row($result)) {
...
}
2.如果$result已经指向记录尾,也就是说已经没有当前记录了,那么执行$r=mysql_fetch_row($result)就会返回FALSE,这样就不再满足WHILE循环的条件了,循环结束,所以这结构就是为了遍历$result中的所有记录的。
*/
// -----------------------------------------------------------------------------------------
mysql_close($conn);
/*
mysql_close() 关闭指定的连接标识所关联的到 MySQL 服务器的连接。如果没有指定 link_identifier,则关闭上一个打开的连接。
通常不需要使用 mysql_close(),因为已打开的非持久连接会在脚本执行完毕后自动关闭。参见释放资源。
注: mysql_close() 不会关闭由 mysql_pconnect() 建立的持久连接。
释放资源:
由于 PHP4 Zend 引擎引进了资源计数系统,可以自动检测到一个资源不再被引用了(和 Java 一样)。这种情况下此资源使用的所有外部资源都会被垃圾回收系统释放。由此原因,很少需要用某些 free-result 函数来手工释放内存。
注: 持久数据库连接比较特殊,它们不会被垃圾回收系统破坏。
*/
// -----------------------------------------------------------------------------------------
mysql_free_result($result);
// 单词查询:mysql_
free_
result
/*
mysql_free_result() 将释放所有与结果标识符 result 所关联的内存。
mysql_free_result() 仅需要在考虑到返回很大的结果集时会占用多少内存时调用。在脚本结束后所有关联的内存都会被自动释放。
如果成功则返回 TRUE,失败则返回 FALSE。
*/