第十六回、PHP基础教程,PHP与mySQL的连接

mySQL的连接

建议按以下将信息赋值给变量的形式,以后用到时,可以直接用变量。

$sqlServerName=”localhost/127.0.0.1/自己的IP地址”;

$userName=”登录数据库的用户名”;

$userPass=”登录数据库的密码”;

$sqlDataBase=”数据库的路径”;

$sql=”sql语句”;

//mySql数据库连接的语法:

$conn=mysql_connect($sqlServerName,$userName,$userPass);

mysql_select_db($sqlDataBase,$conn);

$queryResult=@ mysql_query($sql,$conn) or die(mysql_error());

$row=mysql_fetch_row($queryResult);

或$row=mysql_fetch_array($queryResult);

//说明:mysql_fetch_row($queryResult);

与mysql_fetch_array($queryResult);

的区别是,使用前者生成的数组$row只能使用下标来显示其每个元素的值——即每条记录中字段的值,而用后者则既可以用下标也可以使用数据表中的字段名来显示每个元素的值。

//下面是输出查询结果中每个字段的名称,按行输出

for($i=0;

$i<=mysql_num_fields($queryResult)-1;

$i++)

{

echo mysql_field_name($queryResult,$i).”&

nbsp;

&

nbsp”;

//输出查询结果中每个字段的名称

}

mysql_data_seek($queryResult,0);

//将记录指针移动到查询结果中指定的记录行上,行号从0开始,取值范围是0到(mysql_num_rows-1)

//下面是输出查询的每个记录

while($row=mysql_fetch_row($queryResult))//从结果集中取得一行作为枚举数组,返回根据所取得的行生成的数组,如果没有更多行则返回 FALSE。它会将记录指针自动移动到下一条

{

for($i=0;

$i<mysql_num_fields($queryResult);

$i++)

{

echo $row[$i].”&

nbsp;

&

nbsp;

“;

}

echo “<br>”;

}

mysql_free_result($queryResult);

//释放查询结果

PHP中有关数据查询的常用函数:

$myConnect=mysql_connect: 开启 MySQL 链接,建立PHP与MYSQL的连接

$mysql_select_db: 打开一个数据库,与MYSQL建立连接后,就可以打开一个数据库了

@ 和 or die(“错误信息”):在PHP中把@放在某语句的前面,就可以隐藏这条语句运行时出现的错误;把“or die”放在某条语句的后面,当这条语句在运行时出现错误时就可以显示指定的错误信息

说明:

mysql_connect(“主机”, “用户名”, “密码”) //说明:主机名可以是localhost或IP地址

mysql_select_db(“需打开的数据库名”,连接标识符);

mysql_query(“set names ‘GBK'”);

如果数据表中涵有中文,则在SQL查询前加入之可解决中文乱码

mysql_num_rows;

用于计算查询结果中所得行的数目

mysql_insert_id;

传回最后一次使用 INSERT 指令的 ID。

mysql_tablename;

取得数据库名称

mysql_error;

返回错误信息

mysql_free_result($queryResult);

//释放查询结果

mysql_clos;

关闭 MySQL 链接

htmlspecialchars(string,quotestyle,character-set);

// 主要功能是将HTML格式化,防止在输出html时被浏览器执行;string必要参数,指定需要解码的字符串对象;quotestyle可选参数,定义如何对单引号和双引号进行编码;character-set可选参数,指定使用什么样的字符串设置。详细说明见PHP5手册。

mysql_create_db(“webjx”);

//创建一个名称为webjx的新数据库

SQL语句中limit的用法(MYSQL的这个功能很好,可以比较容易的来实现分页操作):

Select * from table where 条件 limit 开始位置,操作记录数 //开始位置从0开始

Select * from table where 条件 limit 0,20//从满足条件的第1条记录开始,取20条满足条件的记录

Select * from table where 条件 limit 10,20//从满足条件的第11条刻录开始,取20条满足条件的记录

PHP无法向MYSQL保存中文文字或输出MYSQL中的中文文字出现乱码的解决:

PHP操作MYSQL,汉字出现乱码或无法将汉字插入到数据库中,究其原因是字符集设置不当。当数据库中的字符集采取的是UTF-8时,就在mysql_connect后面加一句SET NAMES UTF8,即可使得UTF8的数据库消除乱码;对于GBK的数据库则使用SET NAMES GBK,示例代码如下:

$mysql_mylink = mysql_connect($mysql_host, $mysql_user, $mysql_pass);

mysql_query(“SET NAMES ‘GBK'”);

parse_url()解析URL函数:

parse_url() 是将URL解析成有固定键值的数组的函数

第十六回、PHP基础教程,PHP与mySQL的连接