>  기사  >  백엔드 개발  >  刚转学php,请大家帮小弟我写段数据库查询类的代码

刚转学php,请大家帮小弟我写段数据库查询类的代码

WBOY
WBOY원래의
2016-06-13 11:46:58709검색

刚转学php,请大家帮我写段数据库查询类的代码
大家好,本人初转php,想建立一个pdo连接的数据库操作类,但是不知道php的调用方法,请大家指点下。
类文件coon.php内容:

<br /><?php<br />class my_sql<br />{<br />public $dbh;<br />public $sth;<br />//连接数据库<br />public function sql_open()<br />{<br />     $host='localhost'; //数据库主机名<br />     $dbName='lif2';    //使用的数据库<br />     $user='root';      //数据库连接用户名<br />     $pass='123456';    //对应的密码<br />     $dsn='mysql:host='.$host.';dbname='.$dbName;<br />	 try<br />	 {<br />	$dbh = new PDO($dsn, $user, $pass);<br />	$dbh->query("SET NAMES UTF8");<br />	$dbh->exec("SET NAMES UTF8");<br />	}<br />	catch(Exception $e)<br />    {<br />    echo 'data error: '.$e->getMessage();<br />    }<br />}<br />//关闭数据库连接<br />public function sql_close()<br />{<br />	$dbh=null;<br />}<br /><br />//查询数据库<br />public function my_query($sql)<br />{<br />	$this->sql_open();<br />	//$this->sth = $this->dbh->query($sql); <br />	//$result = $this->sth->fetchAll();       <br />        //return $result;  <br />          这里面怎么写才能返回数据?<br />	}<br />}<br />?><br />


页面调用代码:

<br /><body><br /><?php<br />include 'conn.php';<br />$mysql = new my_sql;<br /><br />foreach ($mysql->my_query('SELECT * FROM user_type order by user_id') as $row)<br />{<br />//这里循环输出查询内容<br />}<br /><br />$mysql->sql_close();<br />?><br /></body><br />


望详细指点下,实在弄不明白,用asp或asp.net的函数调用方法全不行,我想写一个查询,插入,更新和删除数据的通用函数,外部只要带入sql语句就可以执行的那种。
------解决方案--------------------
 $this->dbh = new PDO($dsn, $user, $pass);

你的my_query看上去没错,将注释的那几行打开。先试试看。


------解决方案--------------------
你现在这个不能防注入,防注入需要用PDO::prepare

<br /><?php<br />/* Execute a prepared statement by passing an array of values */<br />$sth = $dbh->prepare('SELECT name, colour, calories<br />    FROM fruit<br />    WHERE calories < ? AND colour = ?');<br />$sth->execute(array(150, 'red'));<br />$red = $sth->fetchAll();<br />$sth->execute(array(175, 'yellow'));<br />$yellow = $sth->fetchAll();<br />?><br />

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.