PHP基础 MYSQL & PHP 第28天

2012-11-14 20:26:51 0  category: 第二阶段php



   网页点击的,提交的内容,交给PHP,然后PHP把写入插入到数据库。【文章添加,发贴,用户注册,删除用户,编辑文章,查看内容】或者显示出来,修改。




数据库连接



1, 连接数据库

2, 测试是否有错误

3, 设置字符集

4, 选择数据库

5, 准备SQL语句

6, 发送SQL语句

7, 判断是否成功,如果是查询则是遍历数据

8, 关闭数据库






函数:

Mysql_connect

连接

Mysql_pconnect

持久连接





Mysql_connect 需要先建立连接,使用完成就断开。

Mysql_pconnect 减少连接,效率更高。但是同时并发的最大连接数并少了






Mysql_errno()

返回连接时的错误号,如果连接成功,则无错误号,如果连接失败,则是整型的错误号。







在执行失败处echo mysql_error() 它会显示最后一个mysql错误








受影响行:

Mysql_affected_rows()  查询几条行数受影响。

拿到用户插入的ID,在放到其它表里面去。








Mysql_fetch_array()  里面传入查询出来的结果集资源。

读一次向下走一次,返回的记录是一个数组,这个数组当中有索引有关联。

索引,查询的字段顺序。而关联是字段名。

我们通常用关联较多,索引需要数数,烦。所以直接用关联。










MYSQL_ASSOC   只有关联

Mysql_fetch_array(资源, MYSQL_ASSOC)  等价于mysql_fetch_assoc()  返回查询结果的关联数组表示

Mysql_fetch_array(资源, MYSQL_NUM)  等价于 mysql_fetch_row()  返回查询出来的索引数组

MYSQL_BOTH  默认值,即有索引,又有关联。

Mysql_fetch_object()  以对象形式进行处理

mysql_num_rows  也是返回查询的行数


mysql_get_server_info   能够判断用户的mysql版本是不是5.0系列的。





form.html

<form action="conn.php" method="post"> 
用户名:<input type="text" name="username" /><br />

密码:<input type="password" name="password" /><br />

确认密码:<input type="password" name="repassword" /><br />

<input type="submit" value="注册" />

</form>



conn.php



<?php 
/*
* 1,@
* 2,php.ini display_error
* 3,php.ini E_ALL
*
* ini_set
* error_reporting
*
* 第一,html页面编码 utf-8
* 第二,meta charset =utf-8
* 第三,php 编码要为utf-8并且不准用带bom头的
* 第四,数据库的编码
* 第五,表的编码
*
* mysql_set_charset('utf8');
*/


if(trim($_POST['password'])!=trim($_POST['repassword'])){
exit('两次密码不致');
}

$username=trim($_POST['username']);
$password=md5(trim($_POST['password']));

$time=time();


//第一步连接
$conn=mysql_connect('localhost','root','123haha');

//第二步判断错误
if(mysql_errno()){

echo '连接失败,失败原因'.mysql_error();
}

//第三步设置字符集
mysql_set_charset('utf8');

//第四步选择库

mysql_select_db('emo');



//第五步准备SQL语句
//$sql="insert into 3ser(username,password,createtime,a) values('武','个','$time')";


$sql="insert into 3ser(username,password,createtime) values('{$username}','{$password}','{$time}')";

//$sql='insert into 3ser(username,password,createtime) values("'.$username.'","'.$password.'","'.$time.'")';


// 第六步发送SQL语句
//语句,分为两类,第一类 DQL select 它最终是有查询结果的。
//
//update delete insert 没有查询结果,无结果,但是有受影响的行SQL语句

//$sql="delete from 3user where id>100";


//$sql="update 3user set password='123456' where id=1";

$result=mysql_query($sql);

if($result&&mysql_affected_rows()){
echo '插入成功';
echo mysql_insert_id().'将这个ID更新到里面';
}else{
echo '插入失败';

}
mysql_close($conn);


?>



config.php


<?php 
define('DB_HOST','localhost');

define('DB_USER','root');

define('DB_PWD','123haha');

define('DB_CHARSET','utf8');

define('DB_NAME','3o');


define('TIMEZONE','Asia/chongqing');

?>



cx.php



<?php 

include 'config.php';
//error_reporting(0);

date_default_timezone_set(TIMEZONE);
$conn=mysql_connect(DB_HOST,DB_USER,DB_PWD);

if(mysql_errno()){

echo '连接失败'.mysql_error();
}

mysql_set_charset(DB_CHARSET);

mysql_select_db(DB_NAME);

$sql="select id,username,password,createtime from 3ser";

$result=mysql_query($sql);

if(5.0>mysql_get_server_info()){

exit('您的数据库版本过低');
}
/*

for($i=0;$i<mysql_num_fields($result);$i++){
echo mysql_field_name($result,$i).'<br>';

}
*/
if($result&&mysql_affected_rows()){
//$row=mysql_fetch_array($result)
echo '<table width="800" border="1">';
while($row=mysql_fetch_object($result)){
echo '<tr>';
echo '<td>'.$row->id.'</td>';
echo '<td>'.$row->username.'</td>';
echo '<td>'.$row->password.'</td>';
echo '<td>'.date('Y年m月d日 H时i分s秒',$row->createtime).'</td>';
echo '</tr>';
}
echo '</table>';
echo '查询出来了'.mysql_num_rows($result).'条记录';
}else{
echo '没有数据或查询失败';
}
?>