我正在尝试根据传递给脚本的选择来构建动态查询。例:

$qry = "SELECT * FROM machinekaart
INNER JOIN afleveradressen ON afleveradressen.raaid = mkrraaid
INNER JOIN kontaktpersonen ON kontaktpersonen.rkpraaid = mkrraaid
WHERE mkrrid != '' " ;

if($_SESSION['oud'])
    $qry .= "  AND mkrvo < " . $cur_jaar_maand;


字段mkrvo是一个文本字段,除其他值外还可以包含yyyy-mm。

例如当变量$ cur_maand_jaar包含'2015-01'时,所选内容将低于2014

我该如何阻止这种情况的发生,并选择低于'2015-01'的所有内容?

最佳答案

我建议引用该变量,以便按字面值取值:

if($_SESSION['oud'])
    $qry .= "  AND mkrvo < '" . $cur_jaar_maand . "'";


更好的是,请使用PDO,这样您就可以使用绑定了,它更加安全并且得到了最佳的优化。

例如。

if($_SESSION['oud'])
    $qry .= "  AND mkrvo < ?";

// build your PDO Connection $myPdoConnection ...

$pdoStatement = $myPdoConnection->prepare($qry);

$pdoStatement->execute(array($cur_jaar_maand));

关于php - 在MySQL中的select语句期间防止变量中的计算,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28325270/

10-13 23:08