Aşağıda yazdığı başka bir PHP veritabanı sınıfı birinin parçası olan, benim sorunun tüm un ilgili kod kaldırıldı ben bu kod yaklaşık% 80 kaldırdık ve sadece tutarı, bana aslında bir vurmadan bu sınıf test sağlar kalır gerçek bir veritabanı.
Bu sınıf, bunu daha sonra bir mysql UPDATE haline dönüşür ve bir dizi kullanarak sql sorgusu INSERT bir anahtar ve değer ayarlamak izin bir kaç yöntem vardır. Ben GÜNCELLEME ve kendi uygulama INSERTS için bu özelliğini kullanabilmek için bu kodu 100% nasıl kullanılacağını anlamaya çalışıyorum.
Temelde anladığım kadarıyla böyle bir şey yapmak ...
// assign some key/values to insert into DB
$db->assign('name', 'dfgd');
$db->assign('age', 87);
$db->assign('sex', 'female');
$db->assign('user_id', 4556);
// Do the insert
$db->insert('testing2');
Kafam karıştı şimdi nerede ben sayfasında ve üzerinde bu gibi bir kod çalıştıran tutmak ve her zaman anahtar / değer dizi setlerinin doğru kümesi kullanmak olacaktır. Gördüğünüz yukarıda ben ata () yöntemi 4 kez kullanılan ve daha sonra bu oluşturur insert () yöntemini çağırın
INSERT INTO test (name, age, sex, user_id) VALUES (jason davis, 26, male, 5345)
Şimdi aynı sayfada bu gibi başka bir set çalıştırırsanız ...
// assign some key/values to insert into DB
$db->assign('name', 'dfgd');
$db->assign('age', 87);
$db->assign('sex', 'female');
$db->assign('user_id', 4556);
// Do the insert
$db->insert('testing2');
Daha sonra bu oluşturur ...
INSERT INTO testing2 (name, age, sex, user_id) VALUES (dfgd, 87, female, 4556)
Peki nasıl 4 2 kümelerini birleştirmek değil, bunun yerine ikinci ekleme 8 kayıt ekleme, bu completey yeni bir dizi ile 4 değerleri ilk seti değiştirir. Bu harika ve ne istiyorum ama nasıl oluyor anlamıyorum? Ayrıca bu zaten geliştirilebilir?
Aşağıda tam bir sınıf ve benim demo kod, bu demo için mysql bağlanmak gerek kalmadan koştu olabilir, o oluşturur SQL ekrana basacaktır.
Ayrıca burada public function reset() kodu altında kullanılacak olması gerekir, ya da ihtiyaç olmaz?
<?php
class DB{
public $fields;
public function assign($field, $value){
$this->fields[$field] = ($value)==""?("'".$value."'"):$value;
}
public function assign_str($field, $value){
$this->fields[$field] = "'".addslashes($value)."'";
}
public function reset(){
$this->fields = array();
}
public function insert($table){
$f = "";
$v = "";
reset($this->fields);
foreach($this->fields as $field=>$value){
$f.= ($f!=""?", ":"").$field;
$v.= ($v!=""?", ":"").$value;
}
$sql = "INSERT INTO ".$table." (".$f.") VALUES (".$v.")";
//print SQL to screen for testing
echo $sql;
//$this->query($sql);
return $this->insert_id();
}
public function update($table, $where){
$f = "";
reset($this->fields);
foreach($this->fields as $field=>$value){
$f.= ($f!=""?", ":"").$field." = ".$value;
}
$sql = "UPDATE ".$table." SET ".$f." ".$where;
echo $sql;
//$this->query($sql);
}
public function query($_query){
$this->query = $_query;
$this->result = @mysql_query($_query, $this->link_id) or die( $_query."<p>".mysql_error($this->link_id) );
return $this->result;
}
public function insert_id(){
return @mysql_insert_id($this->link_id);
}
}
// start new DB object
$db = new DB;
// assign some key/values to insert into DB
$db->assign('name', 'jason davis');
$db->assign('age', 26);
$db->assign('sex', 'male');
$db->assign('user_id', 5345);
// Do the insert
$db->insert('test');
echo '<hr />';
// assign some key/values to insert into DB
$db->assign('name', 'dfgd');
$db->assign('age', 87);
$db->assign('sex', 'female');
$db->assign('user_id', 4556);
// Do the insert
$db->insert('testing2');
echo '<hr />';
// assign some key/values to UPDATE the DB
$db->assign('name', 'jason davis');
$db->assign('age', 26);
$db->assign('sex', 'male');
$db->assign('user_id', 5345);
// DO the DB UPDATE
$db->update('blogs', 'WHERE user_id = 23');
?>