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

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

WBOY
リリース: 2016-06-23 14:05:36
オリジナル
1204 人が閲覧しました

<?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`)


ディスカッション (解決策) に返信

$this をクエリするには mysql_error を使用します->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()。アップデートのスタイルと似ています。
他の人が書いたデータベース クラスも参照してください。これは非常に優れていると思います: http://www.cnblogs.com/hooray/archive/2012/07/21/2603017.html

逆を書きます。 $line1 配列の。
そして、insert ステートメントにもフォーマットがあります: insert into tb_member set username = "test", type = 1, lastlogindt = now()。アップデートのスタイルと似ています。
他の人が書いたデータベース クラスもご覧ください: http://www.cnblogs.com/hooray/archive/201... 実際、私が書いたものではありません。 3階の人が指摘してくれました。 。 。それはすべて小さなシンボルの問題です。 。 。 。 。

require('DB.class.php');
$DB = new DB('localhost','root','','dbtest');
$line1 = array(
'aa'=> " 'aa'",
"'dd'"
);
$DB->insert('1234',$li... ため息 - 奇妙な小さな間違いは常にあります... .

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート