首頁 > 資料庫 > mysql教程 > MySQL的table is read only 解决方法

MySQL的table is read only 解决方法

WBOY
發布: 2016-06-07 16:47:45
原創
1446 人瀏覽過

工作中遇到一个问题:要更新一个数据表。 这个表是我自己创建的,有7个字段,id、name、package等等 创建的时候,因为我把name、

工作中遇到一个问题:要更新一个数据表。

这个表是我自己创建的,有7个字段,id、name、package等等

创建的时候,因为我把name、package的信息分别存在两个文本文件中,,

所以我就用Insert方法,一次性将所有的name插入数据库中。

name全部导入数据库中了,但是我的package没有导入,这时我仍然想用insert的方法插入,但是不行。

这时候应该利用update的方法。一次更新多条信息的思路如下:

UPDATE table_name
    SET field_name = CASE other_field
        WHEN 1 THEN 'value'
        WHEN 2 THEN 'value'
        WHEN 3 THEN 'value'
    END
WHERE id IN (1,2,3)

测试代码如下:

/*
*function: insert app's apk ,logo_url, document_title,app_desc,package_name
*   into talbe atable use database db .
*/

//connect database catx.
 $server='localhost';
 $user='root';
 $passwd='root';
 $port='3306';
 $dbname='catx';
 $link=mysql_connect($server,$user,$passwd);
 if (!$link) {
  die('Could not connect: ' . mysql_error());
 }
 else echo "Connected successfully\n";
 mysql_select_db("db",$link);
//set init variable and start time 
 $st=microtime_float();
 $table="pydot_g";
 $path = "txt";
 $fname_package_name  = "package_name.txt";
 //
 $handle= @fopen($path."/".$fname_package_name, "r"); 
 $i=1;
 $sql = "UPDATE pydot_g SET package_name = CASE id ";
 $ids="";
 while(($buf[$i]=fgets($handle,512))!==false){ 
  $sql .= sprintf("WHEN %d THEN '%s' ", $i, $buf[$i]);  // 拼接SQL语句 
  $ids .= sprintf("%d,",$i);
  $i++;
 } 
 //$ids=implode(',',$ids);
 $ids.=$i;
 $sql .= "END WHERE id IN ($ids)"; 
 echo $sql; 
 mysql_query($sql);
 fclose($handle);
 mysql_close($link);
//echo the results and total time used 
 $et=microtime_float();
 $t=$et-$st;
 echo "\r\ninsert into talbe ",$table," ",$i,"times;\r\n";
 echo "Total time $t seconds.\r\n";
//function calculate time ,return a float number 
 function microtime_float(){ 
  list($usec, $sec) = explode(" ", microtime());
  return ((float)$usec + (float)$sec);
 }
?> 

linux

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板