php sql分离

sql.php

<?php
$con = mysql_connect("localhost","root","root");
mysql_select_db("my_db", $con);
    
$sql=array(
        "all"=>"select * from tables",
        "where"=>"select * from tables where id = {id}",
        "page"=>"select * from tables limit {a},{b}",
        "add"=>"INSERT INTO tables (name) VALUES ('{name}')"
    );
    
?>

json.php

<?php
    include("sql.php");
    
    foreach ($sql as $key=>$value){
        if(@$_GET['action']==$key){
            $a = str_replace("{","".$_GET['",$value);
            $b = str_replace("}","']."",$a);
        }
    }    
    
    eval("$sql = "".$b."";");$result = mysql_query($sql);
    while(@$row = mysql_fetch_array($result)){
      $json = json_encode($row);
      echo $json;
    }
        
?>

 

不管是什么查询的sql语句,根据json_encode这个方法都可以变成json字符串(把sql语句整个当做是一个变量-先不考虑安全性)

但是呢,在不考虑安全性的前提下还是有两点地方不太好

第一:如果把sql语句当成传参的话,url不美观

第二:如果是根据不同的传参指定不同的sql语句的话,会有一大堆的if判断

所以,这个东西相当于(路由+orm)最最简单的模型(orm部分相当于没写,就一个“{}”)

有什么用呢?比如明天就要上百个接口,来不及写程序了。。。O(∩_∩)O哈哈~

原文地址:https://www.cnblogs.com/hellowzd/p/5977356.html