当前位置:首页 » 编程语言 » php原生sql查询
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

php原生sql查询

发布时间: 2022-08-04 19:19:23

㈠ thinkphp怎么获取添加的sql语句信息

  1. thinkphp中的add方法获取sql错误消息可以调用getDbError()函数。
    getDbError函数可以获取数据库的错误信息。
    function GetRandomAd()
    {
    global $myDB;
    $today = date('j');
    $ql = "SELECT * FROM reklama WHERE today<>'$today' OR realimpr<impr OR impr=0 ORDER BY RAND() LIMIT 1";
    $result = $myDB->Execute($ql) or die(GetDbError($myDB->ErrorMsg()));
    $r_id = $result->Fields("aid");
    $r_ad_text = $result->Fields("ad_text");
    $r_today = $result->Fields("today");
    $result->Close();
    if ($r_id)
    {
    if ($today != $r_today) $ql = "UPDATE reklama SET realimpr=1, today='$today' WHERE aid='$r_id'";
    else $ql = "UPDATE reklama SET realimpr=realimpr+1 WHERE aid='$r_id'";
    $result = $myDB->Execute($ql) or die(GetDbError($myDB->ErrorMsg()));
    $result->Close();
    }
    return $r_ad_text;

    }

  2. public function read(){
    // 实例化一个空模型,没有对应任何数据表
    $Dao = M();
    //或者使用 $Dao = new Model();

    $list = $Dao->query("select * from user where uid<5");
    if($list){
    $this->assign('list', $list );
    $this->display();
    } else {
    $this->error($Dao->getError());
    }
    }

    public function read(){
    header("Content-Type:text/html; charset=utf-8");
    // 实例化一个空模型,没有对应任何数据表
    $Dao = M();
    //或者使用 $Dao = new Model();

    $num = $Dao->execute("update user set email = '[email protected]' where uid=3");
    if($num){
    echo '更新 ',$num,' 条记录。';
    }else{
    echo '无记录更新';
    }
    }

    public function read(){
    $Dao = M("User");
    $list = $Dao->query("select __TABLE__ from user where uid<5");

    }


    原生SQL查询

    尽管ThinkPHP内置了大量的数据操作方法,但ThinkPHP仍保留了对原生SQL查询的支持,以便满足复杂查询的需要和一些特殊的数据操作。

    SQL查询的返回值是直接返回DB类的查询结果,没有做任何的处理,而且可以支持查询缓存

    原生SQL查询有 query() 和 execute() 两个方法:

    query():用于 SQL 查询操作,并返回符合查询条件的数据集

    execute():更新和写入数据的 SQL 操作,返回影响的记录数

    query()

    query() 方法是用于 SQL 查询操作,和select()方法一样返回符合查询条件的数据集。

    例子:

    对于 query() 方法返回的数据集,跟 select() 一样,可以在模板里直接循环输出。

    execute()

    execute() 方法用于更新和写入数据的 SQL 操作(注:非查询操作,无返回数据集),返回影响的记录数。

    例子:

    如果查询比较复杂或一些特殊的数据操作不能通过 ThinkPHP 内置的 ORM 和 ActiveRecord 模式实现时,就可以通过直接使用原生 SQL 查询来实现。

    注意:以上都是 user 没有表前缀的例子,在查询语句中,查询的表应该写实际的表名字(包括前缀)。

    小技巧

    原生 SQL 查询需要在查询语句中写上对应的表名,如果表名有改动的时候,就需要逐行去更改 SQL 语句中的表名字,这样不免麻烦。ThinkPHP 提供了一个小技巧来帮助解决这个问题。

    在 SQL 语句中,以 __TABLE__ 来替代真实的表名,而在实例化模型时,仍以表名为参数,如:

    系统在解析的时候会自动替换成当前模型对应的表名,这样就可以做到即使表名有所变化,只需修改实例化对应的表名即可而不用修改原生的 SQL 语句。

㈡ 怎样试用PHP原生语句查询数据库

原生SQL查询有 query() 和 execute() 两个方法:
query():用于 SQL 查询操作,并返回符合查询条件的数据集
execute():更新和写入数据的 SQL 操作,返回影响的记录数
query()
query() 方法是用于 SQL 查询操作,和select()方法一样返回符合查询条件的数据集。
例子:
public function read(){
// 实例化一个空模型,没有对应任何数据表
$Dao = M();
//或者使用 $Dao = new Model();

$list = $Dao->query("select * from user where uid<5");
if($list){
$this->assign('list', $list );
$this->display();
} else {
$this->error($Dao->getError());
}
}
对于 query() 方法返回的数据集,跟 select() 一样,可以在模板里直接循环输出。
execute()
execute() 方法用于更新和写入数据的 SQL 操作(注:非查询操作,无返回数据集),返回影响的记录数。
例子:
public function read(){
header("Content-Type:text/html; charset=utf-8");
// 实例化一个空模型,没有对应任何数据表
$Dao = M();
//或者使用 $Dao = new Model();

$num = $Dao->execute("update user set email = '[email protected]' where uid=3");
if($num){
echo '更新 ',$num,' 条记录。';
}else{
echo '无记录更新';
}
}
如果查询比较复杂或一些特殊的数据操作不能通过 ThinkPHP 内置的 ORM 和 ActiveRecord 模式实现时,就可以通过直接使用原生 SQL 查询来实现。
注意:以上都是 user 没有表前缀的例子,在查询语句中,查询的表应该写实际的表名字(包括前缀)。

㈢ Thinkphp框架中SQL查询怎么区分大小写

用用原生的字符串去拼接sql语句,
$m =M(table);
$map['user_id'] = 110;
$m->where($map)->select();
改成
$m =M(table);
$m->where('USER_ID=110')->select();
或者
$sql = "select * from table where USER_ID=110";
$m = M();

$m->query($sql):

㈣ php语言sql语句查询,根据一个表中一个列读出所对应的数据

其实就是循环和可变变量的问题

直接获取所有的结果 select*fromdollar;

获取的结果为(使用原生太的)

$result= mysql_query("   select * from dollar  ");
//循环获取结果,获取后使用可变变量重新赋值
while($row= mysql_fetch_assoc($result)) {
$$row['type'] = $row['money'];
}


获取的结果为(使用第三方数据库类的情况下)

$array = array( 
[Ɔ'] =&gt; array(
'id' =&gt; Ƈ',
'type'=&gt;'a',
'money'=&gt;颼'
),
[Ƈ'] =&gt; array(
'id' =&gt; ƈ',
'type'=&gt;'b',
'money'=&gt;餠'
),
........
);
if($array){
foreach($array as $val){
$$val['type'] = $val['money'];
}
}
echo $a;//100
echo $b;//200



注意了:变量别重复了。

㈤ php sql语句查询问题

加我网络hi我帮你定位下问题吧

㈥ PHP执行SQL查询怎么做

$haha = M(),$res = $haha->query($sql)。

或 $res = $waw->execute($sql)。

$sql中包含了表名,实例化模型时可以为空。注意query是查功能,execute是增删改功能。

㈦ thinkphp3.2.3 执行原生sql语句(SET SQL_QUOTE_SHOW_CREATE = 1)时报错,是怎么回事

query 执行SQL查询操作
$Model = M()
$Model->query("select * from think_user where status=1");
如果数据非法或者查询错误则返回false
否则返回查询结果数据集(同select方法)

你用插入语句 返回的不是数组 所以就报错了吧

execute用于更新和写入数据的sql操作
$Model = M()
$Model->execute("update think_user set name='thinkPHP' where status=1");
如果数据非法或者查询错误则返回false
否则返回影响的记录数

㈧ 关于thinkPHP中 foreach 里面执行sql语句

原生SQL查询有 query() 和 execute() 两个方法:
query():用于 SQL 查询操作,并返回符合查询条件的数据集
execute():更新和写入数据的 SQL 操作,返回影响的记录数

public function read(){

// 实例化一个空模型,没有对应任何数据表
$Dao = M();
//或者使用 $Dao = new Model();

$list = $Dao->query("select * from user where uid<5");
if($list){
$this->assign('list', $list );
$this->display();
} else {
$this->error($Dao->getError());
}
}

㈨ php SQL 查询

一般使用ORDER BY RAND()来实现随机排序,例如你的语句可以这样写:
$sql2 = "SELECT `article_id`,`title`,`file_url`,`description` FROM " . $GLOBALS['ecs'] -> table('article') . " WHERE `article_id` IN ($articles) ORDER BY RAND() DESC LIMIT 1";