ホームページ > バックエンド開発 > PHPチュートリアル > 自分で作成した DB クラスの何が問題なのか教えてください。データを挿入できません。

自分で作成した DB クラスの何が問題なのか教えてください。データを挿入できません。

WBOY
リリース: 2016-06-13 12:48:49
オリジナル
828 人が閲覧しました

私が自分で書いたこの DB クラスの何が問題なのか教えてください。データを挿入できません

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

。 ホームページの名前は
<?php<br />
require('DB.class.php');<br />
	$DB = new DB('localhost','root','','dbtest');<br />
	$line1 = array(<br />
			'aa'=>'`aa`',<br />
			'bb'=>'`dd`'<br />
	);<br />
	$DB->insert('1234',$line1);<br />
?>
ログイン後にコピー

echo $sql ステートメントは INSERT INTO 1234 (aa,bb) VALUES (`aa`,`dd`) です。


-----解決策---------
require('DB.class.php ');
$DB = 新しい DB('localhost','root','','dbtest');
$line1 = 配列(
'aa'=> "'aa'",
'bb'=> "'dd'"
);
$DB->insert('1234',$line1);

------解決策------ - -
$line1 配列は逆方向に書き込まれます。
また、insert ステートメントには、insert into tb_member set username = "test"、type = 1、lastlogindt = now() という形式もあります。アップデートのスタイルと似ています。
他の人が書いたデータベース クラスも参照してください。これは非常に優れていると思います: http://www.cnblogs.com/hooray/archive/2012/07/21/2603017.html
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート