一、PHP操作MySql数据库
目前创新互联已为1000多家的企业提供了网站建设、域名、虚拟空间、绵阳服务器托管、企业网站设计、石首网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
新增数据
?php
$query
=
"INSERT
INTO
grade
(name,email,point,regdate)
VALUE
('
李三','yc60.com@gmail.com',,NOW())"
;
@mysql_query($query)
or
die(
'添加数据出错:'
.mysql_error());
?
修改数据
?php
$query
=
"UPDATE
grade
SET
name='小可爱'
WHERE
id=6"
;
@mysql_query($query)
or
die(
'修改出错:'
.mysql_error());
?
删除数据
?php
$query
=
"DELETE
FROM
grade
WHERE
id=6";
@mysql_query($query)
or
die(
'删除错误:'
.mysql_error());
?
显示数据
?php
$query
=
"SELECT
id,name,email,point
FROM
grade";
$result
=
@mysql_query($query)
or
die(
'查询语句出错:'
.mysql_error());
while
(!!
$row
=
mysql_fetch_array($result))
{
echo
$row[
'id'
].
'----'
.$row['name'
].'----'
.$row
['email'
].
'----'
.$row['point'
];
echo
'br
/
';
}
?
二、其他常用函数
mysql_f
etch_row()
:从结果集中取得一行作为枚举数组
mysql_f
etch_assoc()
:
从结果集中取得一行作为关联数组
mysql_f
etch_array()
:
从结果集中取得一行作为关联数组,或数字数组,或二者兼有
mysql_f
etch_lengths
()
:
取得结果集中每个输出的长度
mysql_f
ield_name():
取得结果中指定字段的字段名
mysql_num_rows():
取得结果集中行的数目
mysql_num_f
ields():取得结果集中字段的数目
mysql_get_client_inf
o()
:
取得
MySQL
客户端信息
mysql_get_host_info():
取得
MySQL
主机信息
mysql_get_proto_info():
取得
MySQL
协议信息
mysql_get_server_inf
o()
:
取得
MySQL
服务器信息
举例如下:
创建userinfo_update.php页面用于查询用户信息,先显示信息,在修改:
先通过GET获取用户编号查询用户信息:
$sql = "select * from user_info where user_id='".$_GET['userId']."'";
$result = mysql_query($sql,$con);
if($row = mysql_fetch_array($result)){
}
页面效果:
创建update.php文件,用于修改用户信息:
使用到了mysql_affected_rows() 函数返回前一次 MySQL 操作所影响的记录行数。
//通过post获取页面提交数据信息
$userId = $_POST[userId];
$userName = $_POST[userName];
$userAge = $_POST[userAge];
$sql = "update user_info set user_name='".$userName."',user_age=".$userAge." where user_id='".$userId."'";
mysql_query($sql,$conn);//执行SQL
$mark = mysql_affected_rows();//返回影响行数
$url = "userinf_select.php";
运行结果
创建delete.php文件,完成删除用户信息功能:
$userId = $_GET['userId'];
include 'connection.php';
$sql = "delete from user_info where user_id='".$userId."'";
mysql_query($sql,$con);
$mark = mysql_affected_rows();//返回影响行数
if($mark0){
echo "删除成功";
}else{
echo "删除失败";
}
mysql_close($con);
运行结果:
?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("my_db", $con);
$result = mysql_query("SELECT * FROM test");
echo "table border='1'
tr
thFirstname/th
thLastname/th
/tr";
while($row = mysql_fetch_array($result))
{
echo "tr";
echo "td" . $row['account'] . "/td";
echo "td" . $row['password'] . "/td";
echo "/tr";
}
echo "/table";
//这里是修改
while($row = mysql_fetch_array($result))
{
if($row['account'] == 'qqww123'){
mysql_query("UPDATE Persons SET password = '123abc' WHERE account = 'qqww123');//这里是修改account为qqww123的password为123abc
}
}
mysql_close($con);
?
你是想做数据更新语句吧?
$table_name="你的表名";
$colum_name="你要修改的字段名";
$data="你要写入的数据";
$condition="筛选条件,就是where后面的部分";
$sql="update {$table_name} set {$colum_name} = '{$data}' where {$condition}";
$sql-excute();//反正执行这个sql语句级就行了,我这里就是这么个意思,不同php框架有不同执行方式,你也可以用默认的,我Yii用多了,原生方法记不太清楚了,你知道怎么查最好,不知道baidu一下吧,到处都是。
在更新之前 ,先在数据库取字段的值保存,再保存要改成的值,当你更新成功之后,把之前保存的两个值插入日志表
思路 写个表单 文本框 提交 提交的当前页面就行
在php开始判断 if(提交了新的值)执行val.Express_delivery=xxx;
高级的是用ajax 不用刷新页面