如何使用我的SQL PDO进行实时验证

时间:2015-06-05 06:43:37

标签: php mysql pdo

我的目的是进行实时验证,我找到了一个教程,但是他们使用的是旧的sql,我想使用我的sql PDO,但我不能让它工作,即使我的数据库具有相同的名称,它还是说好的。

如何让它工作,在检查我的代码之前,请查看并下载链接以查看它,谢谢。

从这里下载: Please Check This Link

我的代码(我改变了一些PDO但仍然无法工作) dbConnector.php

<?php

    class DbConnector {

    var $link;

    function DbConnector(){
            try{
                $this->link = new PDO('mysql:host=127.0.0.1;dbname=system', 'root', '123456');
                $this->link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                $this->link->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
            }catch(PDOException $e){
                die("this is not connected");
            }

        }

      //*** Function: query, Purpose: Execute a database query ***
        function query($query) {
        try{
        $this->link->prepare($query);
        }catch(PDOException $e){
            die("fail to prepare");
        }
        return $this->link;
    }

    }

    ?>

check.php

<?php
include("dbConnector.php");
$connector = new DbConnector();

$username = trim(strtolower($_POST['username']));

$query = "SELECT air_users FROM USER_NAME WHERE username = ? LIMIT 1";
$result = $connector->query($query);
$result->execute(array($username));

$num = $result->rowCount();
$num = $result->fetch();

echo $num;
// mysql_close();
?>

我没有任何错误,但它仍然无法正常工作。谢谢你帮帮忙。

2 个答案:

答案 0 :(得分:1)

您需要返回import flash.utils.Timer; var looper:Timer=new Timer(1000); var dayOfWeek_array:Array = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"); var time:Date; //use uint type instead of number for these vars.because they won't contain decimals! var month:uint; var day:uint; var year:uint; var hour:String; var minute:String; var day_str:String; var hour12:uint; var AM_PM:Object; looper.start(); looper.addEventListener(TimerEvent.TIMER, looptime) //execute the function when starting app looptime(null); function looptime(event:TimerEvent):void{ time=new Date(); month=time.getMonth(); day= time.getDate()+1; year= time.getFullYear(); hour12=time.getHours()>11?time.getHours()-12:time.getHours(); AM_PM=String(time.getHours()>11?" PM":" AM"); time.getMonth(); hour= hour12>9?String(hour12):"0"+String(hour12); minute=time.getMinutes()>9?String(time.getMinutes()):"0"+String(time.getMinutes()); day_str=dayOfWeek_array[time.getDay()] Day_txt.text = day_str; Date_txt.text = month + "-" + day + "-" + year; Time_txt.text = hour + ":" + minute+AM_PM; } 的返回值,而不是$this->link->prepare($query);本身。要使其工作,请以这种方式重写您的查询:

$this->link

答案 1 :(得分:0)

我不认为$ username变量已在字符串上解释,就像你拥有它一样。

"SELECT users FROM USER_NAME WHERE username = :username' LIMIT 1";
...
execute(array(':username' => $username));

并且在查询方法调用prepeare就像:

  $this->link->prepare($query, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));

 "SELECT users FROM USER_NAME WHERE username = ? LIMIT 1";
    ...
 execute(array($username));

准备方法应该像你在你的例子中那样调用:

$this->link->prepare($query);

在查询方法中,您返回$ query或字符串。您应该返回实例或在查询方法中执行。

function query($query) {
    try{
    $this->link->prepare($query);
    }catch(PDOException $e){
        die("fail to prepare");
    }
    return $this->link;
}

See