php修改数据库失败 php修改mysql数据

php编写修改用户信息程序时,数据库总是不能实现修改。

$userId是否有值,有没有报错?

业务包括:企业网站建设、手机网站制作商城网站建设、网站营销推广等服务,并且涵盖域名与空间、网络空间、云服务器、等互联网基础服务;成都创新互联公司联建站以互联网的创新理念,成熟完善的建站体系,开拓进取的精神,专业的解决方案和顾问咨询服务,帮助客户在互联网时代提升形象、把握商机、实现价值,提高企业的核心竞争力。

$sql = "update `user` set `id`='".$userId."',`username`=".$username.",`password`=".$password.",`email`=".$email.",`idgroup`=".$idgroup." where id=".$userId."";

改成

$sql = "update `user` set `username`=".$username.",`password`=".$password.",`email`=".$email.",`idgroup`=".$idgroup." where id=".$userId."";

试试

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函数操作数据库失败

mysql_affected_rows($data_t)的结果是数组,怎么可能会==1.

也不知道你为什么要检查它是否==1。

改为mysql_affected_rows($data_t)[n]倒有可能可以,n的值为你要检查的是否等于1的那个值所在的列,记住,从零开始数。

php 操作数据库的问题,打印的值显示都正常,就是更改不了?

建议在10行(sqlsrv_query)后面增加下面的语句:

if( $data === false ) {

echo $sql;

die( print_r( sqlsrv_errors(), true));

}

主要是查看SQL查询是否执行成功,另外也可以把echo $sql放在执行前,当需要修改的数据不存在(0条修改)的时候sqlsrv_query执行会成功。

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_rows 0) {

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='$row[0]' //td";

echo "tdinput name='country' type='text' id='country' value='$row[1]' //td";

echo "tdinput name='animal' type='text' id='animal' value='$row[2]' //td";

echo "tdinput name='cname ' type='text' id='cname' value='$row[3]' //td";

echo "tdinput name='bthModify' type='submit' id='bthModify' value='修改' //td";

echo "/tr";

echo "/form";

}

echo "/table";

}

$result-close();

}

?

thinkphp在数据库中增加和修改失败

你是要将查询出的数据中为空的字段补充信息,这样可能有好几个空字段,所以理想的方法是先找出需要更新的字段,最后再一次性更新。

foreach($arr[0] as $k = $val){ $data['id'] = $arr[0]['id']; if($val == null) $data[$k] = '写入这句'; $m-save($data); }


本文标题:php修改数据库失败 php修改mysql数据
文章来源:http://azwzsj.com/article/hehoph.html