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

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

WBOY
WBOYOriginal
2016-06-23 14:05:361204Durchsuche

<?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;		}	}?>

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

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…… 唉- -总是些奇奇怪怪的小错误。。。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn