连接数据库,有三种方法
1. 常规方式:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
$con =mysql_connect( $dbhostip , $username , $userpassword ) or die ( "Unable to connect to the MySQL!" );
$db = mysql_select_db( $dbdatabasename , $con );
//执行语句
$qres =mysql_query( "SELECT id,GoodsName FROM user" );
//提取一条数据
11 $row =mysql_fetch_row( $result ); //mysql_fetch_row只能提取出查询结果的第一条记录
//提取多条记录
$reslist = array ();
$i =0;
while ( $row = mysql_fetch_row( $res )){
$reslist [ $i ] = $row ;
$i ++;
}
mysql_close( $con );
|
//mysql_fetch_row 提取的结果是没有查询中的字段名了(也就是没有键id,GoodsName,只有值),如下图:
//mysql_fetch_assoc 提取的结果有键值,如下图:
//mysql_fetch_array提取的结果有键值,是前面两种的综合,如下图:
在mysql_connect()、mysql_select_db()等函数之前使用@(错误控制运算符),可以忽略掉系统产生的错误信息,然后我们用die()来自定义错误信息;
对于mysql_query()函数的返回值,如果执行的语句有返回值(如SELECT、SHOW、DESCRIBE等),则返回相应数据(成功时)或FALSE(失败时);如果执行的语句没有返回值(如DELETE、DROP、INSERT、UPDATE等),则返回TRUE(成功时)或FALSE(失败时)。
2. 面向对象形式
1
2
3
4
5
6
7
8
9
10
11
12
13
|
$db = new mysqli( $dbhostip , $username , $userpassword , $dbdatabasename );
if (mysqli_connect_error()){
echo 'Could not connect to database.' ;
exit ;
}
$result = $db ->query( "SELECT id,GoodsName FROM user" );
$row = $result ->fetch_row();
|
这里用到的是mysqli,意思就是mysql的扩展,既可以通过面向过程的方式也可以通过面向对象的方式与数据库进行交互
3. PDO方法
PDO其实是PHP Database Objects的缩写,中文即PHP数据库对象。它提供了一种统一的PHP与数据库交互的方法。
它的优势在于:只要正确提供数据源,余下对于数据库的基本操作都是一样的。也就是说,同一段代码既可以同MySQL交互,也可以和SQLite3交互,当然也可以和PostgreSQL进行交互,前提是你提供了正确的数据源。
连接MySQL的代码:
1
|
$dsn = 'mysql:host=' . $dbhost . ';dbname=' . $dbdatabase . ';' $dbh = new PDO( $dsn , $username , $userpass );
|
SQLite3:
1
2
3
4
5
6
|
$dsn = 'sqlite3:"D:\sqlite\user.db"' ;
$dbh = new PDO( $dsn );
PostgreSQL:
$dsn = 'pgsql:host=' . $dbhost . ' port=5432 dbname=' . $dbdatabase . ' user=' . $username . ' password=' . $userpass ;
$dbh = new PDO( $dsn );
|
操作 :
1
2
|
$stmt = $dbh ->query( 'SELECT id,name FROM user' );
$row = $stmt ->fetch();
|