我试图在脚本中构建查询,该脚本依赖于对象的属性来检索正确的信息。我有这个:
$query = "SELECT fields FROM table WHERE fieldA = $this->x";
//Processing of results here
我之前看过使用过字符串变量的查询,但是如果您使用的是您知道的具有数值和相应列的变量,我不确定规则是否不同对于所述值,声明为整数或小数。我是否需要在$this->x
周围添加单引号?
答案 0 :(得分:1)
使用PDO执行此操作:
$user = "username";
$password = "password";
$pdo = new PDO('mysql:host=localhost;dbname=dbname', $user, $pass);
$stmt = $pdo->prepare('SELECT fields FROM table WHERE fieldA = :value');
$stmt->execute(array('value' => $this->x);
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
打印结果:
echo '<pre>';
print_r($result);
echo '</pre>';
或绑定一个值:
$sth->bindValue(':value', $this->x, PDO::PARAM_INT);
对于MySQLi,请参阅: How can I prevent SQL injection in PHP?
答案 1 :(得分:0)
如你所说$ this-&gt; x是数字。我做了一个小测试。工作正常。
class foo{
public $x;
public function showQuery (){
$this->x = 10;
return "SELECT fields FROM table WHERE fieldA = $this->x";
}
}
$ob = new foo();
echo $ob->showQuery();
输出:
SELECT fields FROM table WHERE fieldA = 10
注意:这取决于您是否希望使用PDO。是否可以使用标准字符串查询并使用mysqli数据库处理程序执行它? :是的