20M你要讀到數(shù)組中,如果你不清楚要用到里面哪些數(shù)據(jù),并且你的數(shù)據(jù)比較規(guī)律的話,你可以把這20M切開不同個小文件,再根據(jù)你在程序中要用的數(shù)據(jù)來做判斷是載入哪個文件,比如你這20M文件都有一個索引id,1,2,3,4,5....你可以把這20M文件的數(shù)據(jù)id為1-1000的存到一個文件里,1001-2000存到另一個文件里,你在用時根據(jù)要用到的id判斷載入哪個文件,這只是個思路,具體要看你的數(shù)據(jù)是個什么樣的,能不能滿足切開放的條件
創(chuàng)新互聯(lián)建站專注于企業(yè)營銷型網(wǎng)站、網(wǎng)站重做改版、根河網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁面制作、商城網(wǎng)站定制開發(fā)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為根河等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
按我的理解這里存在兩個方面的問題,
dbclass是數(shù)據(jù)庫操作類,funclass是數(shù)據(jù)業(yè)務(wù)訪問類,這兩個從邏輯上說應(yīng)該不屬于繼承關(guān)系,用繼承不太恰當
dbclass里應(yīng)該會有訪問數(shù)據(jù)庫的所需的參數(shù)信息,這個有可能寫在配置文件里,也有可能在代碼里傳參,因此這里你可以通過修改代碼實現(xiàn)能動態(tài)調(diào)用的多庫
解決辦法
1. 用繼承的方式
class?funclass?extends?dbclass{
public?function??index_news(){
$this-set_database($a);?//set_database?指定數(shù)據(jù)庫,dbclass里如果沒有就需要自己寫個
$this-query($sql);???//query方法是dbcalss類中的方法
$this-set_database($b);
$this-query($sql);???
}
2.不用繼承的方式
class?funclass{
public?function??index_news(){
$dba?=?new?dbclass($a);?//需要實現(xiàn)db類支持用構(gòu)造函數(shù)指定數(shù)據(jù)庫
$dbb?=?new?dbclass($b);
$dba?-query($sql);???//query方法是dbcalss類中的方法
$dbb?-query($sql);???
}
這里定義2個php匿名對象和數(shù)組相互轉(zhuǎn)換的函數(shù),代碼如下:
function array2object($array) {
if (is_array($array)) { $obj = new StdClass(); foreach ($array as $key = $val){ $obj-$key = $val; } } else { $obj = $array; } return $obj;}function object2array($object) { if (is_object($object)) { foreach ($object as $key = $value) { $array[$key] = $value; } } else { $array = $object; } return $array;}
用法示例如下:
$array = array('foo' = 'bar','one' = 'two','three' = 'four');$obj = array2object($array);print $obj-one; // output's "two"$arr = object2array($obj);print $arr['foo']; // output's bar
?php
$conn=new?mysqli("127.0.0.1",?"root",?"jack123456",?"test");
???if(mysqli_connect_error()){??
$this-error?=?mysqli_connect_error();??
return?FALSE;??
}??
$conn-query("SET?NAMES?UTF8");
$Id?=?$_GET['id'];?//具有唯一性,自增
$mobile?=?$_GET['mobile'];?//具有唯一性
$sql1?=?"select?*?from?users?where?ID=$Id";
//這里我要判斷這條數(shù)據(jù)是否存在,存在就獲取mobile,無需循環(huán)
$rs?=?$conn-query($sql1);
if?($rs-num_rows!==0)?{
$row?=?$rs?-?fetch_assoc();
$mobile=?$row['mobile'];
$rs-close();
echo?"get";
}?else?{//如果數(shù)據(jù)不存在,就新增一條
$sql2?=?"insert?into?users?(mobile)?values('$mobile')";
$conn-query($sql2);//插入之后,獲取該信息,這里要從數(shù)據(jù)庫中獲取,不要Get的數(shù)據(jù)。
$sql3?=?"select?*?from?users?where?mobile?=?'$mobile?'";
if?($rs?=?$conn-query($sql3))?{
$row?=?$rs?-?fetch_assoc();
$Id?=?$row['ID'];
$mobile?=?$row['mobile'];
$rs-close();
echo??"charu";
}else{
echo?'插入數(shù)據(jù)失敗';
}
}
$sql4?=?"update?Users?set?loginIp='127.0.0.1'?where?ID='$Id'";
$conn-query($sql4);
mysqli_close($conn);//關(guān)閉連接
表結(jié)構(gòu) 字段名的大小寫 一定要注意
php不是一切皆對象,只有類class才是對象,在類中可以添加,
(添加、刪除、使用)的方法,當然你要編寫一切皆對象的php程序也是可以的??茨愎αα?。
這是連接mysql數(shù)據(jù)庫的簡單代碼:
$conn=new?PDO("mysql:host=localhost;dbname=webdata","user","pwd");
$sth=$conn-prepare("select?*?from?books");
$sth-execute();
while($res=$sth-fetch(PDO::FETCH_ASSOC))
{
echo("div".$res["id"].":".$res["title"]."--".$res["author"]);
}