大家好,本人初转php,想建立一个pdo连接的数据库操作类,但是不知道php的调用方法,请大家指点下。
类文件coon.php内容:
<?php
class my_sql
{
public $dbh;
public $sth;
//连接数据库
public function sql_open()
{
$host='localhost'; //数据库主机名
$dbName='lif2'; //使用的数据库
$user='root'; //数据库连接用户名
$pass='123456'; //对应的密码
$dsn='mysql:host='.$host.';dbname='.$dbName;
try
{
$dbh = new PDO($dsn, $user, $pass);
$dbh->query("SET NAMES UTF8");
$dbh->exec("SET NAMES UTF8");
}
catch(Exception $e)
{
echo 'data error: '.$e->getMessage();
}
}
//关闭数据库连接
public function sql_close()
{
$dbh=null;
}
//查询数据库
public function my_query($sql)
{
$this->sql_open();
//$this->sth = $this->dbh->query($sql);
//$result = $this->sth->fetchAll();
//return $result;
这里面怎么写才能返回数据?
}
}
?>
页面调用代码:
<body>
<?php
include 'conn.php';
$mysql = new my_sql;
foreach ($mysql->my_query('SELECT * FROM user_type order by user_id') as $row)
{
//这里循环输出查询内容
}
$mysql->sql_close();
?>
</body>
望详细指点下,实在弄不明白,用asp或asp.net的函数调用方法全不行,我想写一个查询,插入,更新和删除数据的通用函数,外部只要带入sql语句就可以执行的那种。
------解决方案--------------------
$this->dbh = new PDO($dsn, $user, $pass);
你的my_query看上去没错,将注释的那几行打开。先试试看。
------解决方案--------------------
你现在这个不能防注入,防注入需要用PDO::prepare
<?php
/* Execute a prepared statement by passing an array of values */
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->execute(array(150, 'red'));
$red = $sth->fetchAll();
$sth->execute(array(175, 'yellow'));
$yellow = $sth->fetchAll();
?>