sqlphp修改数据库 sql如何修改数据库

PHP修改数据库问题你的错误主要在这里
$sql="UPDATE symbols SET country = '$_POST[country]',animal = '$_POST[animal]',cname='$_POST[cname_]' WHERE symbols.id=$_POST[id]";
当存在中文字符时,中文字符用''包围,而英文字符不用,否则会出错的 。
像这种symbols.id,句号.只是用于表示指向的,如果是你在单个表中可以把表名省去,就用id就行 , 只有在多表查询中才需要指明某个字段属于哪个表单 。
还有你下面的 $result=$mysqli-query(sql);sql前面应该加一个$ 。
下面是我改的代码,经过测试可以方便使用:
有个比较怪异的地方是 , $_POST[cname_],它在POST表单中自动添加为cname_,这个是var_dump($_POST)测试的得到的结果,var_dump函数用于查看变量类型以及变量值的 。还有后面把表单处改为
echo "form method='POST' action='{$_SERVER['PHP_SELF']}'";
actio指向自身,而且将其放在输出循环中,字符集也改为了UTF8 , header头先输出声明,否则在IE以为的浏览器中会出现乱码
?php
header("Content-type: text/html;charset=UTF-8");
$host = "localhost";
$user = "root";
$pass = "";
$db = "phpdev";
$mysqli = new mysqli($host, $user, $pass, $db);
if (mysqli_connect_errno()) {
die("Unable to connect!");
}
$mysqli-query("SET NAMES 'utf8'");
if (isset($_POST['bthModify'])) {
$sql="UPDATE {$db}.symbols SET country = '$_POST[country]',animal = '$_POST[animal]',cname='$_POST[cname_]' WHERE symbols.id=$_POST[id]";
$result=$mysqli-query($sql);
//var_dump($sql);
if ($result) {
echo "修改成功";
}else {
echo "修改失败";
}
}
$query = "SELECT * FROM symbols";
if ($result = $mysqli-query($query)) {
if ($result-num_rows0) {
echo "table cellpadding=10 border=1";
while($row = $result-fetch_array()) {
echo "form method='POST' action='{$_SERVER['PHP_SELF']}'";
echo "tr";
echo "tdinput name='id' type='text' id='id' value='https://www.04ip.com/post/$row[0]' //td";
echo "tdinput name='country' type='text' id='country' value='https://www.04ip.com/post/$row[1]' //td";
echo "tdinput name='animal' type='text' id='animal' value='https://www.04ip.com/post/$row[2]' //td";
echo "tdinput name='cname ' type='text' id='cname' value='https://www.04ip.com/post/$row[3]' //td";
echo "tdinput name='bthModify' type='submit' id='bthModify' value='https://www.04ip.com/post/修改' //td";
echo "/tr";
echo "/form";
}
echo "/table";
}
$result-close();
}
?
php怎么修改数据库单独一行的数据呢?取行的数据库行的主键字段的值,然后对数据执行更新操作:
updatetabblename set xxx1 = 'aaaa',xxx2='bbbb' where id = 主键的值.
PHP SQL修改数据库看上去没什么错啊 , 要不你echo $sql看看,是不是post的数据没取到啊
如何用php修改数据库中的数据举例如下:
创建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 操作数据库的问题,打印的值显示都正常,就是更改不了?建议在10行(sqlsrv_query)后面增加下面的语句:
if( $data =https://www.04ip.com/post/== false ) {
echo $sql;
die( print_r( sqlsrv_errors(), true));
}
主要是查看SQL查询是否执行成功,另外也可以把echo $sql放在执行前,当需要修改的数据不存在(0条修改)的时候sqlsrv_query执行会成功 。
php数据库添加、删除、修改数据(mysql)一、PHP操作MySql数据库
新增数据
?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
【sqlphp修改数据库 sql如何修改数据库】ields():取得结果集中字段的数目
mysql_get_client_inf
o()

取得
MySQL
客户端信息
mysql_get_host_info():
取得
MySQL
主机信息
mysql_get_proto_info():
取得
MySQL
协议信息
mysql_get_server_inf
o()

取得
MySQL
服务器信息
关于sqlphp修改数据库和sql如何修改数据库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。

    推荐阅读