我的目的是进行实时验证,我找到了一个教程,但是他们使用的是旧的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();
?>
我没有任何错误,但它仍然无法正常工作。谢谢你帮帮忙。
答案 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;
}