資料庫指令碼
啊最近由於老版**改版,改了些需求,改了改資料庫。所以,要用資料庫指令碼修改資料庫資料。主要是要將原來以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) 執行 php sql.php命令,如果沒有報錯的話,就已經成功連線啦。
然後如果只是單純的修改變數的話,只需要下面的**。
$change_sql = "alter table ".$table[$x]." change ".$name." ".$name." datetime default current_timestamp ";
$change = $mysqli->query($change_sql);
if(!$change)其中需要注意的是,如果要在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())然後用這個將取出的資料處理為陣列的形式,方便處理。
$count = count($arr);用這個函式計算該陣列的條數。
$j = 0;
while($j < $count)
$x++;
}然後通過while迴圈來處理資料。進行更新。
如果這樣執行還是不對,那就把改資料列中的資料在修改完型別後,把後來的資料處理為空(因為可能會有自動更新的資料),然後再進行更改。
修改資料庫
改資料庫庫名稱 alter database 資料庫名稱 modify name 新資料庫名稱 或exec sp renamedb 資料庫名稱 新資料庫名稱 擴大資料庫 alter database語句擴大資料庫 alter database studentsys add file name stu...
LINUX資料庫 修改資料庫編碼
1.先登入資料庫mysql uroot proot2.檢視資料庫編碼 發現資料庫和資料庫服務對應的編碼是latin1,需要修改資料庫的編碼為utf8 show variables like character exit vi etc my.cnf4.修改配置檔案 在配置檔案中新增,寫完以後 wq儲存...
修改資料庫資料思路
搞了兩天資料庫資料,一頭霧水,沒有一點思路,寫出來sql也不對。今天公司一大神給我指點了下,感覺思路特別重要。我的任務是將乙個表中的資料更新到另乙個表中,當然還有很多條件。思路 1 修改資料時先查出你要修改的列,和需要填充的資料,讓他們併排顯示 2 寫修改語句,執行修改語句後不要提交事務,在pl s...