php学习之数据访问
//造连接对象
$db = new MYSQLi("localhost","root","123","mydb"); //MYSQLi为类名,括号内为参数,第二个参数是root,
第三个是密码,第四个是要连接的数据库的名称。
//写SQL语句
$SQL = "select * form info"; //写一条SQL语句查询info表内的内容
//执行SQL语句,返回结果集对象
$result = $db->query($sql); //运用连接对象db调用query方法来执行写好的SQL语句,已经写好的SQl语句把它当做变量来执行一下,执行完
会返回结果集对象。用一个变量$result来接收一下,那么这个$result就是个结果集对象了。结果就在$result里面存着了。
//取数据 //用fetch_all()方法取到的是表里面的所有的值
//$arr = $result->fetch_all(MYSQLI_BOth) //用$result结果集对象来调用一下fetch_all()方法
//all()后面默认是MYSQLI_NUM的参数,代表数字的意思返回的数组下标索引是索引也就是数字。
//若all()后面的参数为MYSQLI_ASSOC这个参数返回为把原来的数字索引数组变为关联数组,会显示列名。
//若all()后面的参数为MYSQLI_BOTH这个参数返回为数组里面既有索引的也有关联的。
//查询所有数据返回所有数据fetch_all()需要额外的配置,有的支持有的不支持。 慎用
//$arr = $result->fetch_array();//fetch_array()方法默认返回一条数据。返回了一条一维数组,只包含一条数据也就是第一条数据。既有关联也有索引
while($arr = $result->fetch_array()) //运用while循环来遍历数组。 因为fetch_array()执行一次输出一条。
{
var_dump($arr);
}
$arr = $result->fetch_assoc(); //也是每次返回一条数据,返回的是关联数组。也可以用while循环挨条读。
var_dump($arr);
$arr = $result->fetch_object(); //每执行一次返回一个对象 也可用while循环。
var_dump($arr);
$arr = $result->fetch_row(); //每次读一条,返回一个索引数组。
var_dump($arr);
常用fetch_all(); 和 fetch_row(); 一般用后者的时候运用while循环遍历出所有数据。
$db = new MYSQL("localhost","root","123","mydb");
$sql = "delete from info where code='n011' ";
$result = $db->query($sql);
var_dump($result);
//如果执行增删改语句,成功返回true,失败返回false
$result = $db->query($sql); //执行SQL语句,返回结果集对象
//var_dump($result->num_rows); //它可以显示数据的长度,可以用它来判断一下这个结果集里面有没有数据。
if($result->num_rows>0) //运用if语句判断一下这个结果集里面有没有数据
{ //判断一下如果大于0就代表里面有数据。如果小于0就说明这个结果集里面没有数据。就可以不用读了
} //括号内也可以不用写大于零。 括号内的结果要么是0要么是1.2.3...,只要是0就是false就代表没有数据,是1.2.3...就代表true //弱类型语言的特点:判断里面如果是0或者空值就代表false,判断里面如果是大于0的整数则就代表true
//所以我们可以使用它来作为一个条件,到底查到的结果里面有没有数据,如果有数据的话就来读,如果没有数据的话不判断就去读可能会报错。所以加个判断
//如果报错的里面包含读数据的方法如fetch_all() 或者fetch_row()再或者是fetch_assoc()等读数据获取数据的方法的错误的话就代表你的SQL语句
写错了。解决办法:我们可以命令echo $SQL;把这条SQL语句输出一下。看到这个语句复制,拿到数据库的查询里面粘贴执行它就会给你报错。
从数据库的表中读取数据显示
1.
<?php
echo "<select>";
$db = new MYSQLi("localhost","root","123","t_90052");
$sql = "select * from 7f";
$result = $db->query($sql);
$arr = $result->fetch_all();
foreach($arr as $v)
{
echo "<option value='{$v[0]}'>{$v[1]}</option>";
}
echo "</select>";
?>
2.
<body>
<select>
<option>请选择</option>
<?php
$db = new MYSQLi("localhost","root","123","mydb");
$sql = "select * from nation";
$result = $db->query($sql);
while($arr = $result->fetch_row())
{
echo "<option value='{$arr[0]}'>{$arr[1]}</option>";
}
?>
</select>
<body>
//在下拉列表里面设置一个默认的"请选择"选项。在2里面添加<option>请选择</option>
//第一种方法是所有的代码全在php里面输出
//第二种是先在页面上搭好html代码,然后哪个位置需要使用从数据库里读数据,哪个位置就嵌入php代码