我正在构建一个带有许多数据库查询的API。为了避免在每个查询中重复一些预先设定的值,我创建了一些PHP常量。但是我不确定在Mysqli准备语句中正确的包含它们的方式。我知道常量不能通过引用传递。因此,我想知道是否应该为包含常量的查询创建一个变量,还是直接将带有常量的字符串传递给prepare()函数。所以,如果我这样做可以吗?或者我应该在调用prepare()之前创建一个变量并将字符串存储在那里?
$stmt = $this->conn->prepare("SELECT city FROM masters WHERE email = ? AND estado != '" . STATE_INACTIVE . "'");
$stmt->bind_param("s", $email );
对比
$query = "SELECT city FROM masters WHERE email = ? AND estado != '" . STATE_INACTIVE . "'";
$stmt = $this->conn->prepare($query);
$stmt->bind_param("s", $email );
$stmt->bind_param("s", STATE_INACTIVE );
这个语句为什么不能工作? - Matthew Page