아래는 다른 쓴 PHP 데이터베이스 클래스 누군가의 일부입니다, 나는 그것의 약 80 %가 코드, 내 질문에 모든 유엔 관련 코드가 제거 된 것 제거하고 단지 양이 그 날이 실제로하지 않고이 클래스를 테스트 할 수 있습니다 남아 실제 데이터베이스를 쳤다.은 어떻게 PHP는 사용할 배열의 키/값을 알고 있나요?
이 클래스를 사용하면 키를 설정하고 다음 MySQL의 UPDATE로 바뀝니다 가치와 배열을 사용하여 SQL 쿼리를 삽입 할 수 있도록 몇 가지 방법이있다. 나는 내 자신의 응용 프로그램에 UPDATE 및 인서트를 위해이 기능을 사용할 수 있도록이 코드를 100 % 사용하는 방법을 알아 내려고 노력하고있다. 난 당신이 그런 짓을 수집하는 것과
Basicly ... 지금은 혼란 스러워요
// 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');
내가 페이지에 반복과 같은 코드를 실행에 유지할 수 있습니다이며 항상 사용합니다 올바른 키/값 배열 집합입니다. 당신은 내가 할당() 메서드를 4 번 사용 참조하고 내가 같은 페이지에서이 같은 다른 설정을 실행하면 지금이
INSERT INTO test (name, age, sex, user_id) VALUES (jason davis, 26, male, 5345)
를 생성 삽입() 메소드 ... 호출 할 수 있습니다 위의
// 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');
그런 다음이 생성
... (는) 4의 2 개 세트를 결합, 그래서 대신에 두 번째 삽입에 8 기록을 삽입하지 않는 방법 그래서
INSERT INTO testing2 (name, age, sex, user_id) VALUES (dfgd, 87, female, 4556)
, 그것은 completey 4 개 값의 첫 번째 세트를 대체 새로운 세트 이것은 훌륭하고 내가 원하는 것은 무엇이지만 어떻게 진행되고 있는지 이해할 수 없습니까? 또한 어쨌든 개선 될 수 있습니까?
아래는 전체 클래스와 내 데모 코드, 그것은이 데모 mysql을 연결할 필요없이 실행 할 수 있습니다, 그것은 빌드 SQL을 화면에 출력합니다.
또한 아래 코드에서 public function reset()을 사용해야합니까, 아니면 필요하지 않을까요? 당신이 이름 키를 사용하기 때문에
, 그것은 새로운 키와 이전 키를 대체
<?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');
?>
너무 많은 사람들이이 질문의 '의미'에 대해 논쟁하기 전에 답을 수락하고 싶을 수도 있습니다. –
대답은 42입니다 !!! xP –
내 담당자가 정확히 7,777입니다. 적어도 그것은 1,111 낮다. –