PHP与mysql的基础知识
php.ini 加载mysql组件:
extension=php_mysql.dll 前的; 去掉
extension_dir = " " 路径是否正确
1、PHP链接mysql的函数:
mysql_connect: 打开一个到 MySQL 服务器的连接,如果成功则返回一个 MySQL 连接标识,失败则返回 FALSE
mysql_connect: 打开一个到 MySQL 服务器的连接,如果成功则返回一个 MySQL 连接标识,失败则返回 FALSE
mysql_connect("数据库主机地址", "用户名", "密码")
2、mysql_select_db: 打开一个数据库
mysql_select_db("数据库名",连接标识符);
如果不特别声明连接标识符,则默认为是上一次打开的连接,连接标识符是mysql_connect()返回的值。
可以在函数名前加上 @ 来抑制失败时产生的错误信息。
die显示失败信息。
die显示失败信息。
3、如何去执行一个SQL语句
mysql_query (SQL语句 ,连接标识符);
说明:mysql_query用来根据连接标识符向该数据库服务器的当前数据库发送查询,
如果没填写连接标识符,则默认为是上一次打开的连接。
返回值:成功后返回一个结果标识符,失败时返回false。
$sql = "SELECT * FROM test";
$result = @ mysql_query($sql, $conn) or die(mysql_error());
4、两种查询函数array / row区别
格式:mysql_fetch_row(result);
resutl由mysql_query()返回。
说明:mysql_fetch_row用来查询结果的一行保存至数组,该数组下标从0开始,每一个数组元素对应
一个域。通过循环,可以将查询结果全部获得。
格式:mysql_fetch_array(result);
说明:mysql_fetch_array和mysql_fetch_row功能基本相同,只不过它除了可以用从0开始的偏移量作索引,还可以用数据表的列名作索引。
值返回下一行的所有域值,并将其保存至一个数组中,没有行时返回false。
5、mysql_query("set names 'GBK'"); 解决中文乱码
6、 其他常用Mysql函数介绍
mysql_num_rows 用于计算查询结果中所得行的数目
mysql_insert_id 传回最后一次使用 INSERT 指令的 ID。
mysql_tablename 取得数据库名称
mysql_error 返回错误信息
mysql_close 关闭 MySQL 链接
- 目录
- mysql_affected_rows -- 取得前一次 MySQL 操作所影响的记录行数
- mysql_change_user -- 改变活动连接中登录的用户
- mysql_client_encoding -- 返回字符集的名称
- mysql_close -- 关闭 MySQL 连接
- mysql_connect -- 打开一个到 MySQL 服务器的连接
- mysql_create_db -- 新建一个 MySQL 数据库
- mysql_data_seek -- 移动内部结果的指针
- mysql_db_name -- 取得结果数据
- mysql_db_query -- 发送一条 MySQL 查询
- mysql_drop_db -- 丢弃(删除)一个 MySQL 数据库
- mysql_errno -- 返回上一个 MySQL 操作中的错误信息的数字编码
- mysql_error -- 返回上一个 MySQL 操作产生的文本错误信息
- mysql_escape_string -- 转义一个字符串用于 mysql_query
- mysql_fetch_array -- 从结果集中取得一行作为关联数组,或数字数组,或二者兼有
- mysql_fetch_assoc -- 从结果集中取得一行作为关联数组
- mysql_fetch_field -- 从结果集中取得列信息并作为对象返回
- mysql_fetch_lengths -- 取得结果集中每个输出的长度
- mysql_fetch_object -- 从结果集中取得一行作为对象
- mysql_fetch_row -- 从结果集中取得一行作为枚举数组
- mysql_field_flags -- 从结果中取得和指定字段关联的标志
- mysql_field_len -- 返回指定字段的长度
- mysql_field_name -- 取得结果中指定字段的字段名
- mysql_field_seek -- 将结果集中的指针设定为制定的字段偏移量
- mysql_field_table -- 取得指定字段所在的表名
- mysql_field_type -- 取得结果集中指定字段的类型
- mysql_free_result -- 释放结果内存
- mysql_get_client_info -- 取得 MySQL 客户端信息
- mysql_get_host_info -- 取得 MySQL 主机信息
- mysql_get_proto_info -- 取得 MySQL 协议信息
- mysql_get_server_info -- 取得 MySQL 服务器信息
- mysql_info -- 取得最近一条查询的信息
- mysql_insert_id -- 取得上一步 INSERT 操作产生的 ID
- mysql_list_dbs -- 列出 MySQL 服务器中所有的数据库
- mysql_list_fields -- 列出 MySQL 结果中的字段
- mysql_list_processes -- 列出 MySQL 进程
- mysql_list_tables -- 列出 MySQL 数据库中的表
- mysql_num_fields -- 取得结果集中字段的数目
- mysql_num_rows -- 取得结果集中行的数目
- mysql_pconnect -- 打开一个到 MySQL 服务器的持久连接
- mysql_ping -- Ping 一个服务器连接,如果没有连接则重新连接
- mysql_query -- 发送一条 MySQL 查询
- mysql_real_escape_string -- 转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集
- mysql_result -- 取得结果数据
- mysql_select_db -- 选择 MySQL 数据库
- mysql_stat -- 取得当前系统状态
- mysql_tablename -- 取得表名
- mysql_thread_id -- 返回当前线程的 ID
- mysql_unbuffered_query -- 向 MySQL 发送一条 SQL 查询,并不获取和缓存结果的行
<?php
/* 连接选择数据库 */
$link = mysql_connect("mysql_host", "mysql_user", "mysql_password")
or die("Could not connect : " . mysql_error());
print "Connected successfully";
mysql_select_db("my_database") or die("Could not select database");
/* 执行 SQL 查询 */
$query = "SELECT * FROM my_table";
$result = mysql_query($query) or die("Query failed : " . mysql_error());
/* 在 HTML 中打印结果 */
print "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
print "\t<tr>\n";
foreach ($line as $col_value) {
print "\t\t<td>$col_value</td>\n";
}
print "\t</tr>\n";
}
print "</table>\n";
/* 释放资源 */
mysql_free_result($result);
/* 断开连接 */
mysql_close($link);
?>