脚本宝典收集整理的这篇文章主要介绍了这个PHP如何知道要使用哪个数组键/值?,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
这个类有几个方法可以让你设置一个键并对其进行赋值,然后使用数组将其转换为MysqL UPDATE和INSERT SQL查询.我试图弄清楚如何100%使用这个代码,所以我可以在我自己的应用程序中使用它的UPDATE和INSERTS的这个功能.
基本上从我收集到的东西你做这样的事……
// 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');
现在我感到困惑的是,我可以继续在页面上反复运行这样的代码,它总是会使用正确的键/值数组集.上面你可以看到我使用了assign()方法4次然后调用insert()方法来创建它
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',4556); // Do the insert $db->insert('testing2');
然后创建这个……
INSERT INTO testing2 (name,user_id) VALUES (dfgd,87,female,4556)
那么它如何不组合2组4,所以它不是在第二个插入上插入8个记录,而是用新集合替换第一组4个值.这很棒,我想要但我不明白它是怎么回事?这还可以改进吗?
下面是一个完整的类和我的演示代码,它可以运行而无需连接到MysqL进行此演示,它将打印以筛选它构建的sql.
另外,下面的代码中的公共函数reset()需要在哪里使用,还是不需要?
<?@L_126_27@ 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',4556); // Do the insert $db->insert('testing2'); echo '<hr />'; // assign some key/values to UPDATE the DB $db->assign('name',5345); // DO the DB UPDATE $db->update('blogs','WHERE user_id = 23'); ?>
将您的代码更新为:
public function insert($table){ $f = ""; $v = ""; foreach($this->fields as $field=>$value){ $f.= ($f!=""?",":"").$value; } $sql = "INSERT INTO ".$table." (".$f.") VALUES (".$v.")"; $this->reset(); //print sql to screen for testing echo $sql; //$this->query($sql); return $this->insert_id(); } public function update($table,$where){ $f = ""; foreach($this->fields as $field=>$value){ $f.= ($f!=""?",":"").$field." = ".$value; } $sql = "UPDATE ".$table." SET ".$f." ".$where; $this->reset(); echo $sql; //$this->query($sql); }
以上是脚本宝典为你收集整理的这个PHP如何知道要使用哪个数组键/值?全部内容,希望文章能够帮你解决这个PHP如何知道要使用哪个数组键/值?所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。