MySQL查询中的数字PHP变量

时间:2015-12-22 15:43:09

标签: php mysql

我试图在脚本中构建查询,该脚本依赖于对象的属性来检索正确的信息。我有这个:

$query = "SELECT fields FROM table WHERE fieldA  = $this->x";
//Processing of results here

我之前看过使用过字符串变量的查询,但是如果您使用的是您知道的具有数值和相应列的变量,我不确定规则是否不同对于所述值,声明为整数或小数。我是否需要在$this->x周围添加单引号?

2 个答案:

答案 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数据库处理程序执行它? :是的