成功选择好 MySQL 数据库后,接下来就可以对所选数据库中的数据表进行查询、更改以及删除等操作,PHP 中我们使用 mysqli_query() 函数就可以实现上述的所有操作,函数的语法格式如下:
面向对象风格的写法:
mysqli::query( string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )
参数说明:
$query:要执行的 SQL 语句;
$resultmode:可选参数,用来修改函数的行为。可以是下列值的任意一个:
MYSQLI_USE_RESULT(如果需要查询大量数据,使用这个);
MYSQLI_STORE_RESULT(默认值)。
面向过程风格的写法:
mysqli_query( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )
参数说明:
$link:表示由 mysqli_connect() 函数返回的数据库连接;
$query:要执行的 SQL 语句;
$resultmode:可选参数,用来修改函数的行为。可以是下列值的任意一个:
MYSQLI_USE_RESULT(如果需要查询大量数据,使用这个);
MYSQLI_STORE_RESULT(默认值)。
提示:函数执行失败时会返回 FALSE;而通过 mysqli_query() 成功执行 SELECT、SHOW、DESCRIBE 或 EXPLAIN 查询时则会返回一个 mysqli_result 对象;其他查询执行成功则返回 TRUE。
演示之前我们先在数据表中添加一些数据,如下所示:
mysql> select * from user;
+----+--------+------+------+
| id | name | age | sex |
+----+--------+------+------+
| 1 | 张三 | 12 | 男 |
| 2 | 李四 | 11 | 男 |
| 3 | 王五 | 13 | 男 |
| 4 | 小明 | 12 | 女 |
+----+--------+------+------+
4 rows in set (0.00 sec)
【示例】使用 mysqli_query() 函数执行指定的 SQL 语句。
1) 面向对象风格的写法
$host = 'localhost';
$username = 'root';
$password = 'root';
$dbname = 'test';
$mysql = new Mysqli($host, $username, $password, $dbname);
if($mysql -> connect_errno){
die('数据库连接失败:'.$mysql->connect_errno);
}else{
$mysql -> set_charset('UTF-8'); // 设置数据库字符集
$sql = 'select name,sex,age from user'; // SQL 语句
$result = $mysql -> query($sql); // 执行上面的 SQL 语句
$data = $result -> fetch_all();
$mysql -> close();
}
echo '
';
print_r($data);
?>
2) 面向过程风格的写法
$host = 'localhost';
$username = 'root';
$password = 'root';
$dbname = 'test';
$link = @mysqli_connect($host, $username, $password, $dbname);
if($link){
$sql = 'select name,sex,age from user'; // SQL 语句
$result = mysqli_query($link, $sql); // 执行 SQL 语句,并返回结果
$data = mysqli_fetch_all($result); // 从结果集中获取所有数据
mysqli_close($link);
}else{
echo '数据库连接失败!';
}
echo '
';
print_r($data);
?>
运行结果如下:
Array
(
[0] => Array
(
[0] => 张三
[1] => 男
[2] => 12
)
[1] => Array
(
[0] => 李四
[1] => 男
[2] => 11
)
[2] => Array
(
[0] => 王五
[1] => 男
[2] => 13
)
[3] => Array
(
[0] => 小明
[1] => 女
[2] => 12
)
)