PHP使用mysqli进行数据读取
来源:互联网 发布:c语言合法用户标识符 编辑:程序博客网 时间:2024/05/16 09:43
首先要与数据库建立连接
$servername="servername";//数据库地址如localhost$username="username";$password="password";$conn=new mysqli($servername,username,password);
执行SQL语句可以通过mysqli执行也可以通过mysqli的实例执行
$sql="sql语句";mysqli_query($conn,$sql);conn->query($sql);
读取查询结果的方法
//conn->query($sql)会返回一个 mysqli_result对象,该类有fetch_assoc方法while ($row=$result->fetch_assoc()) { echo ($row['name']);//这里的name是标的列名。 }//也可以使用fetch_row方法while($row=$result->fetch_row(){//或者mysqli_fetch_row($result) echo ($row[0]);//0是索引 /* 想要输出一行中的所有数据时可以用foreach循环 foreach($row as $data){ echo $row; } 上面也可以用相同方法 */ echo"<br>";}
下面为上面两个方法做出解释,首先两者最大的区别在于返回值的不同,fetch_assoc方法以键值对数组形式返回一行数据,而fetch_row方法返回的是以枚举数值返回的一行数据。简单来说就是映射方式不同,一个是以列名来获取数据另一个是以索引来获取数据。
重要事项
这两个方法在每次运行的时候都会将指针向下移动一位!!!
$result是mysqli_result对象,里面应该是有类似于数组一样的机制
/* 属性 */int $current_field ;int $field_count;array $lengths;int $num_rows;
文档就给了这些属性,完全不知道他是怎么遍历的。。。给的方法也只给了使用方法,希望有大佬留言指教。
另一个需要注意的地方
官方文档对fetch_assoc的方法有这样一段描述
If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you either need to access the result with numeric indices by using mysqli_fetch_row() or add alias names.
翻译过来大概意思就是说如果有两个列名称相同的话fetch_assoc方法会让最后那个列的数据取代前面的数据,然后只返回一个数据,如果你想显示所有的数据的话应当使用fetch_row()或者在查询的时候使用别名。
这个问题发生的情况就是你在进行多表查询的时候有时候会出现两张表列重名的情况,这个时候你用fetch_assoc是无法 全部保存在数组里的,因为他里面是以列名为索引,列名重复了,自然就会覆盖前面的值。用fetch_row的话通过自动分配的数字索引就不会有这个问题,而另一个解决办法则是通过使用别名修改保存时的索引值,但是相对的在查询的时候要使用别名作为索引名称。
//$conn是mysqli的实例,table1和table2中都有name列$result=$conn->query("select table1.name,table2.name as a from table1, table2" );while($row =$result.fetch_assoc()){ echo $row['name'].$row['a'];}
其他的查询方式以后在看吧,感觉这两个可以可以对付大多数情况了,其他的再看吧。最后,请大佬们帮忙解答一下这两个方法大概是怎么实现的~~
- PHP使用mysqli进行数据读取
- 通过mysqli读取数据
- php mysqli 使用prepare
- php mysqli 的使用
- PHP mysql 使用mysqli
- PHP中mysqli使用
- PHP MySQLi的使用
- 使用mysqli存取数据
- PHP中mysqli的使用
- php使用mysqli连接数据库
- PHP中mysqli使用2
- PHP之mysqli的使用
- PHP通过mysqli进行数据库备份
- 使用mysqli方式进行数据库查询
- 使用GDAL进行栅格数据读取示例
- 使用php laravel进行数据数据采集
- php mysqli
- PHP--mysqli
- 我的web之路-html DOM
- Codeforces 794 C. Naming Company (贪心)
- 有关生意 有关投资 我的第一次心动
- [leetcode 413. Arithmetic Slices]medium|week 12
- 属性前缀
- PHP使用mysqli进行数据读取
- HDU 2795 Billboard(线段树区间最值查询和单点更新)
- 搜索 G
- Convert BST to Greater Tree
- mysql初识
- Java基础-多线程的中常用方法
- 长度单位em rem
- CString 和 LPCTSTR 之间的转换 及 LPSTR、LPWSTR、LPCSTR、LPCWSTR、LPTSTR、LPCTSTR的区分与转化
- jar与dex互转工具,apk源码查看工具