PHP和SQL是现在最流行的编程语言,它们合作得非常好。SQL用于存储各种数据,而PHP可访问SQL数据库。其中,数组是PHP中非常有用的数据类型。在本文中,我们将了解数组在PHP和SQL中的运用。
数组是存储一组数据的变量。在PHP中,数组可以存储多种数据类型,如整数、字符串、浮点数、布尔值等。数组可以通过索引或键提取其中的元素。下面是一组PHP数组的例子:
$cars = array("Volvo", "BMW", "Toyota"); $numbers = array(1, 2, 3, 4, 5); $person = array("name"=>"John", "age"=>30, "city"=>"New York");
在SQL中,数组多被用于存储一组查询结果。例如,在下面的SQL查询中,结果存储在名为$result的数组中:
SELECT name, age, city FROM persons; $result = mysqli_query($con, $sql);
在PHP中,一个常见的用途是将查询结果存储在数组中,然后遍历数组并打印每一个元素,如下所示:
$sql = "SELECT name, age, city FROM persons"; $result = mysqli_query($con, $sql); if (mysqli_num_rows($result) > 0) { // 输出每行数据 while($row = mysqli_fetch_assoc($result)) { echo "Name: " . $row["name"]. " - Age: " . $row["age"]. " - City: " . $row["city"]. "<br>"; } } else { echo "0 结果"; }
可以看到,通过mysqli_fetch_assoc()函数获取的所有查询结果都通过循环一一获取。可以看到,此处是通过索引访问数组元素的。
PHP数组和SQL数组之间的转换非常简单。首先,在PHP中,可以使用mysqli_fetch_array()函数将查询结果转换为数组:
$sql = "SELECT name, age, city FROM persons"; $result = mysqli_query($con, $sql); if (mysqli_num_rows($result) > 0) { // 输出每行数据 while($row = mysqli_fetch_array($result)) { // 将查询结果转换为数组 $arr[] = $row; } } else { echo "0 结果"; }
如上所述,mysqli_fetch_array()函数返回一个包含查询结果的数组,可以通过遍历和索引或键访问数组元素。
接着,可以使用json_encode()函数将PHP数组转换为JSON字符串。
echo json_encode($arr);
接下来,使用json_decode()函数将JSON字符串转换回PHP数组:
$json_str = '[ { "name":"John", "age":30, "city":"New York"}, { "name":"Jane", "age":25, "city":"Chicago"}, { "name":"Jim", "age":40, "city":"San Francisco"} ]'; $arr = json_decode($json_str, true);
可以看到,json_decode()函数返回一个包含JSON字符串的PHP数组。
总之,PHP和SQL数组在实现查询结果的存储和遍历时非常有用。PHP数组可以存储多种数据类型,并可以通过索引或键访问其中的元素。SQL数组包含查询结果,可以通过循环遍历和索引或键访问其中的数据。在PHP和SQL之间转换数组非常简单。