php
mysql_connect("数据库服务器IP", "用户名", "密码"); //连接数据库服务器
mysql_select_db("数据库名"); //激活要操作的数据库
mysql_query("set names 字符集名称"); //设置字符集,防止乱码
$sql = "SQL查询语句";
$recordset = mysql_query($sql); //执行SQL语句,$recordset 是执行结果(记录集)
while ($row = mysql_fetch_array($result)) //将$recordset中的数据逐行转换成数组$row
{
//操作查询结果$row[...]
}
////////////////////////////////////////////////////////////////////////////////
//希望只要能对粉丝们有用,就是我们最大的鼓励和动力
//////////////////////////////////////////////////////////////////////////////////
原生SQL查询有 query() 和 execute() 两个方法:
query():用于 SQL 查询操作,并返回符合查询条件的数据集
execute():更新和写入数据的 SQL 操作,返回影响的记录数
query()
query() 方法是用于 SQL 查询操作,和select()方法一样返回符合查询条件的数据集.
例子:
public function read(){
// 实例化一个空模型,没有对应任何数据表
$Dao = M();
//或者使用 $Dao = new Model();
if($list){
$this-assign('list', $list );
} else {
$this-error($Dao-getError());
对于 query() 方法返回的数据集,跟 select() 一样,可以在模板里直接循环输出.
execute()
execute() 方法用于更新和写入数据的 SQL 操作(注:非查询操作,无返回数据集),返回影响的记录数.
if($num){
echo '更新 ',$num,' 条记录.';
}else{
echo '无记录更新';
如果查询比较复杂或一些特殊的数据操作不能通过 ThinkPHP 内置的 ORM 和 ActiveRecord 模式实现时,就可以通过直接使用原生 SQL 查询来实现.
注意:以上都是 user 没有表前缀的例子,在查询语句中,查询的表应该写实际的表名字(包括前缀).
查询:select 字段名 from 表名 where 条件 order by ......
删除:DELETE FROM 表名称 WHERE 列名称 = 值
修改:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
php操作mysql步骤:
or
die('数据库连接失败.'mysql_error());链接mysql.
names
=
"select
*
from
blog_article";准备要查询的数据.
mysql_query($sql);执行sql查询.
mysql_fetch_assoc($datas)得到查询到的缓存在内存中的一条数据.
相同点:三个函数都是返回数据库中查询到的一行数据(说的再清楚点就是一条数据).
不同点:mysql_fetch_assoc()用的是数据库中相应的字段名作为的key值(也就是数组下标)
如:filed['id']=1;
mysql_fetch_row()用的是自动生成的数字(从0开始依次生成)作为的key值(也就是数组下标)
如:filed[0]=1;
mysql_fetch_array()用的是自动生成的数字(从0开始依次生成)作为的key值(也就是数组下标),而且它还同时生成数据库中相应的字段名作为的key值(也就是数组下标)
如:
filed[0]=1,filed['id']=1;也就是说,mysql_fetch_array()将mysql_fetch_assoc()和mysql_fetch_row()查询到的结果合为了一体了.
mysql_fetch_object()与mysql_fetch_assoc()差不多.只是mysql_fetch_assoc()返回的是数组.mysql_fetch_object()返回的是object对象.
mysql_insert_id() 取得上一步
INSERT
操作产生的
ID.
mysql_result()
函数返回结果集中一个字段的值.
mysql_num_fields()
函数返回结果集中字段的数目.
mysql_affected_rows();返回前一次
MySQL
操作所影响的记录行数.
mysql_num_rows(mysql_query($sql))获得结果集中行的数目.
mysql_pconnect()
函数打开一个到
服务器的持久连接.
和
mysql_connect()
非常相似,但有两个主要区别:
当连接的时候本函数将先尝试寻找一个在同一个主机上用同样的用户名和密码已经打开的(持久)连接,如果找到,则返回此连接标识而不打开新连接.
其次,当脚本执行完毕后到
SQL
服务器的连接不会被关闭,此连接将保持打开以备以后使用(mysql_close()
不会关闭由
建立的连接).
mysql_unbuffered_query($sql)和mysql_query($sql)效果差不多,但是
mysql_unbuffered_query($sql)不缓存.mysql_query($sql)会缓存查询的结果.
mysql_close();关闭mysql的最近的链接.
primary_key
auto_increment
.
mysql_fetch_lengths(mysql_query($sql))返回该条数据的所有字段的每个字段的长度.返回的是一个数字组成的数组.
mysql_field_table(mysql_query($sql),0)返回指定字段所在的表名.
mysql_free_result(mysql_query($sql))
函数释放结果内存.
mysql_get_client_info()
函数返回
mysql_get_host_info()
取得
主机信息.