Home > Backend Development > PHP Tutorial > 求问我自己写的这个DB类,哪里错了,插不进数据

求问我自己写的这个DB类,哪里错了,插不进数据

WBOY
Release: 2016-06-23 14:05:36
Original
1209 people have browsed it

<?php	class DB{		private $hostname;		private $username;		private $password;		private $select_db;		private $con;		private $Error;				public function __construct($hostname,$username,$password,$select_db){			if(!empty($hostname)&&!empty($username)&&!empty($select_db))//检查参数是否为空,否则不赋值			{				$this->hostname = $hostname;				$this->username = $username;				$this->password = $password;				$this->select_db = $select_db;				$this->con = mysql_connect($this->hostname,$this->username,$this->password);				if(!$this->con){					$this->Error = die('Could Not Connect:'.mysql_error);				}				else{					mysql_select_db($this->select_db,$this->con);				}			}		}		public function __destruct(){//退出时结束连接			mysql_close($this->con);		}		public function insert($table,$body){//插入table中的一个数组			$line1 = implode(',',$body);			$line2 = implode(',',array_keys($body));			echo $sql = "INSERT INTO $table ($line2) VALUES ($line1)";			$result = mysql_query($sql,$this->con);			if(!$result){				echo $this->Error;				echo '111';			}					}		public function update($table,$body){				}		public function read($table,$keyword){					}		public function delete($table,$keyword){				}		public function getLastError(){//返回最后一条错误信息			return $this->Error;		}	}?>
Copy after login

主页调用的是
<?phprequire('DB.class.php');	$DB = new DB('localhost','root','','dbtest');	$line1 = array(			'aa'=>'`aa`',			'bb'=>'`dd`'	);	$DB->insert('1234',$line1);?>
Copy after login

echo $sql语句是INSERT INTO 1234 (aa,bb) VALUES (`aa`,`dd`)


回复讨论(解决方案)

用mysql_error查询$this->con,没有返回错误信息。。。。我现在很抓狂- -求人解答啊。。。。

require('DB.class.php');
    $DB = new DB('localhost','root','','dbtest');
    $line1 = array(
            'aa'=> "'aa'",
            'bb'=> "'dd'"
    );
    $DB->insert('1234',$line1);

你的$line1数组写反了。
而且insert 语句还有一种格式:insert into tb_member set username = "test", type = 1, lastlogindt = now()。跟update样式差不多。
你也可以看看人家写的数据库类,我感觉挺好的:http://www.cnblogs.com/hooray/archive/2012/07/21/2603017.html

你的$line1数组写反了。
而且insert 语句还有一种格式:insert into tb_member set username = "test", type = 1, lastlogindt = now()。跟update样式差不多。
你也可以看看人家写的数据库类,我感觉挺好的:http://www.cnblogs.com/hooray/archive/201…… 其实没写反- -三楼指出来了。。。都是些小符号的问题。。。。。

require('DB.class.php');
    $DB = new DB('localhost','root','','dbtest');
    $line1 = array(
            'aa'=> "'aa'",
            'bb'=> "'dd'"
    );
    $DB->insert('1234',$li…… 唉- -总是些奇奇怪怪的小错误。。。

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template