当调用成员函数combinetring()对非对象时,我遇到了一个问题。
**Index.php**
inlcude("string.php");
calldata('usa');
**string.php**
$a=new a();
funciton calldata($val){
$st1="select a from table 1 where country=".$a->combinestring($val);
return $st1;
}
**Class A**
function combinestring($abc){
Return "'".$abc."'";
}
Unknow $ a-> combinetring($ val);
如何解决这个问题。
最好的问候
答案 0 :(得分:0)
您收到错误
在非对象上调用成员函数combinetring()
因为您正在调用非对象变量的成员函数。这意味着$a
不是对象。
在string.php中,您不能在函数定义中使用$a
,因为变量具有局部范围。您无法像这样访问该对象实例。但是,您可以使用全局变量来执行此操作。
您的string.php
文件应该是这样的:
$a=new a();
funciton calldata($val){
global $a;
$st1="select a from table 1 where country=".$a->combinestring($val);
return $st1;
}
前往此链接以获取有关变量范围的更多信息:http://php.net/manual/en/language.variables.scope.php
答案 1 :(得分:0)
使用PDO
。
funciton calldata($val){
$st1="select a from table 1 where country = ?";
$pdo = new PDO('host', 'user', 'pass');
$result = $pdo->prepare($st1)->execute($val);
return $result;
}
这与您正在进行的操作有很大不同,但是您的a
类不会逃避查询的输入而且这很糟糕。