YaYa_so 2016-06-02 06:30 采纳率: 0%
浏览 1278

PHP操作数据库增,删,改,查的问题

最近想做一个微信公众号玩玩,然后遇到一个问题,想了半天没有头绪,想来看看,问题如下:
我把数据库的连接和简单的增,删,改,查都写入在了mysqltest.php中,然后在index.php中导入调用这些方法。然而运行项目后数据库的数据没有任何改变,sql语句执行失败,但是我写的测试方法是可以向数据库中添加修改数据的。有没有大神来帮忙看看问题的所在,谢谢了。附上代码

这是mysqltest.php中的代码(登陆数据库的用户名和密码我用*代替了)

$con=mysql_connect("rds9b8s9gl540sop5dh7.mysql.rds.aliyuncs.com:3306", "mm********", "mm********");
if (!$con){
  echo "shibai";
}else{
    echo "success!";
}
mysql_select_db("ryj41g99c0",$con);


//查询数据
function _select_date($q,$con){
    return $result=mysql_query($q) or die("no date");
}

//修改数据
function _update_date($q,$con){
    $result=mysql_query($q,$con);
    $a=mysql_affected_rows($con);
    if($a>0){
        return 0;
    }else{
        return 1;
    }
}

//删除数据
function  _delete_date($q,$con){
    $result=mysql_query($q,$con);
    $a=mysql_affected_rows($con);
    if($a>0){
        return 0;
    }else{
        return 1;
    }
}

//添加数据

function _insert_date($q,$con){
    $result=mysql_query($q,$con);
    $a=mysql_affected_rows($con);
    if($a>0){
        return 0;
    }else{
        return 1;
    }
}
?>

这是index.php的代码
<?php

require_once("mysqltest.php");
header('Content-type:text');

//require_once("xiaoxi/weather.php");
define("TOKEN", "aaa");
$wechatObj = new wechatCallbackapiTest();
if (isset($_GET['echostr'])) {
$wechatObj->valid();
}else{
$wechatObj->responseMsg();
}

class wechatCallbackapiTest
{
public function valid()
{
$echoStr = $_GET["echostr"];
if($this->checkSignature()){
header('content-type:text');
echo $echoStr;
exit;
}
}

private function checkSignature()
{
    $signature = $_GET["signature"];
    $timestamp = $_GET["timestamp"];
    $nonce = $_GET["nonce"];

    $token = TOKEN;
    $tmpArr = array($token, $timestamp, $nonce);
    sort($tmpArr, SORT_STRING);
    $tmpStr = implode( $tmpArr );
    $tmpStr = sha1( $tmpStr );

    if( $tmpStr == $signature ){
        return true;
    }else{
        return false;
    }
}

public function responseMsg()
{
    $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

    if (!empty($postStr)){
        $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
        $fromUsername = $postObj->FromUserName;
        $toUsername = $postObj->ToUserName;
        $keyword = trim($postObj->Content);
        $time = time();

        $msgType = "text";

        if(!empty($keyword)){


            $sql = "SELECT flag_id FROM user_flags WHERE from_user = 'mei' LIMIT 0,1";
            $result=_select_date($sql,$con);
            while($rows=mysql_fetch_array($result)){
                $user_flag = $rows[flag_id];
            }

            //如果用户输入“帮助”,则输出欢迎语,删除用户状态并直接退出
            if($keyword == "帮助" || $keyword == "菜单" || $keyword == "功能" || $keyword == "导航" || $keyword == "提示")
            {
                $contentStr = "感谢您关注【有卡余额不足】\n请回复序号:\n1. 天气查询\n2. 翻译查询\n输入【帮助】查看提示\n更多内容,敬请期待...";
                echo $this->handtext($postObj,$contentStr);
                $a= "DELETE FROM user_flags WHERE from_user = '$fromUsername'";
                _delete_date($a,$con);
                exit();
            }
            //如果用户输入的内容和数据库中存储的不一样,并且又数字选项,则删除数据库中的内容,并把user_flag的值重置为空
            if(($keyword <> trim($user_flag)) && is_numeric($keyword)){
                $user_flag="";
                $b = "DELETE FROM user_flags WHERE from_user = '$fromUsername'";
                _delete_date($b,$con);
                //exit();

            }

            if (empty($user_flag))
                {
                    switch ($keyword)
                    {
                        case 1: //查询天气
                            $c= "insert into user_flags(from_user,flag_id) values('$fromUsername',1)";
                            $contentStr = "请输入要查询天气的城市:如北京、上海、深圳";
                            break;
                        case 2: //翻译
                            $c = "insert into user_flags(from_user,flag_id) values('$fromUsername',2)";
                            $contentStr = "请输入要翻译的内容:如:早上好、good morning、おはよう";
                            break;
                        default: //其他
                            $c = "";
                            $contentStr = "感谢您关注【有卡余额不足】\n请回复序号:\n1. 天气查询\n2. 翻译查询\n输入【帮助】查看提示\n更多内容,敬请期待...123";
                            break;
                    }

                    //判断并执行上面的插入语句
                    if (!empty($c))
                    {
                       _insert_date($c,$con);

                    }

                //用户状态不为空
                }else{
                    if ($user_flag == 1)
                    {
                        $contentStr ="查询天气";
                            //_weather($keyword);   //查询天气
                    }elseif ($user_flag == 2)
                    {
                        $contentStr = "翻译";
                            //_baiduDic($keyword);  //翻译
                    }
                }


            $resultStr=$this->handtext($postObj, $contentStr);
            echo $resultStr;
        }else{
        echo "Input something...";
    }
    }else{
        echo "";
        exit;
    }
}
function handtext($postObj,$contentStr){
$textTpl = "<xml>
            <ToUserName><![CDATA[%s]]></ToUserName>
            <FromUserName><![CDATA[%s]]></FromUserName>
            <CreateTime>%s</CreateTime>
            <MsgType><![CDATA[text]]></MsgType>
            <Content><![CDATA[%s]]></Content>
            <FuncFlag>%d</FuncFlag>
            </xml>";
$resultStr = sprintf($textTpl, $postObj->FromUserName, $postObj->ToUserName, time(), $contentStr, $flag);
return $resultStr;

}
}
?>


下面是我测试的时候写的代码
<?php

require_once("mysqltest.php");
$fromUsername="man";
$a="DELETE FROM user_flags WHERE from_user = '$fromUsername'";
_detele_date($a,$con);
?>





  • 写回答

2条回答

  • zhangsheng_1992 2016-06-02 07:22
    关注
     require_once("mysqltest.php");
    $fromUsername="man";
    $a="DELETE FROM user_flags WHERE from_user = '$fromUsername'";
    _detele_date($a,$con);
    

    你这的$con是怎么来的?

    评论

报告相同问题?

悬赏问题

  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试