设为首页 加入收藏

TOP

用数据库脚本修改数据库数据的操作分享
2018-04-20 06:06:17 】 浏览:259
Tags:数据库 脚本 修改 数据库数据 操作 分享

数据库脚本

啊最近由于老版网站改版,改了些需求,改了改数据库。所以,要用数据库脚本修改数据库数据。主要是要将原来以VARCHAR形式存的时间戳改为DATETIME类型,且为自动赋值以当前时间。经过一番磨难,最后成果如下。

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "psych";//选择数据库
$table = 'users1';

首先肯定是要先连接数据库啦。Dbname为数据库的名字。Table就是要修改的表。如果要同时修改多个表的话,可以给table变量赋一个一维数组。不过以上只是一些基础准备。Php7.0仿佛之前的mysql函数不能用了,所有要用mysqli对象来连接数据库。如下图。

$mysqli = new mysqli($servername, $username, $password, $dbname);
if (!$mysqli) {
    die('Not connected : ' . mysql_error());
}

运行 php sql.php命令,如果没有报错的话,就已经成功连接啦。

然后如果只是单纯的修改变量的话,只需要下面的代码。

$change_sql = "ALTER TABLE ".$table[$x]." CHANGE ".$name." ".$name." DATETIME DEFAULT CURRENT_TIMESTAMP ";
$change = $mysqli->query($change_sql);
if(!$change){
    echo mysql_error();
}

其中需要注意的是,如果要在sql语句中加入一个变量。如果是上图这样的,那在变量外加上“. $i .”就可以。但如果是下图这样。

$sql = "UPDATE ".$table[$x]." SET ".$name."='".$time."' WHERE id='".$id."'";
$res = $mysqli->query($sql);

在 WHERE id = 后赋变量,则需要用‘”. $i .”’来括起来。不过我也不是很确定啊,具体情况具体分析啦…

但是如果设计到了修改原有数据列,而且这一列本来就有数据时,就要复杂点啦。因为如果简单的将VARCHAR改为DATETIME的话,原有的数据就都清空了。所以要加一些其他的步骤。

$result_sql = "SELECT id,uploadtime FROM " . $table[$x] . "";
$result = $mysqli->query($result_sql);

首先用这几行代码,取出需要改变的那一列的原有数据。当然,如果要修改许多数据表的话,可以加一个while循环。

while($row = $result->fetch_array()){
    $arr[$i] = $row;
    $i++;
}

然后用这个将取出的数据处理为数组的形式,方便处理。

$count = count($arr);

用这个函数计算该数组的条数。

    $j = 0;
    while($j < $count){
        $time = date('Y-m-d H-i-s', $arr[$j][$name]);
   //       $time = date('Y-m-d H-i-s', 1333958440);
        $id = $arr[$j]['id'];
        $sql = "UPDATE ".$table[$x]." SET ".$name."='".$time."' WHERE id='".$id."'";
        $res = $mysqli->query($sql);
        $j++;
    }
    $x++;
}

然后通过while循环来处理数据。进行更新。

如果这样运行还是不对,那就把改数据列中的数据在修改完类型后,把后来的数据处理为空(因为可能会有自动更新的数据),然后再进行更改。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇MySQL基础学习之基本命令行、c++ .. 下一篇SQL中rownum和orderby的执行顺序..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目