我在PHP中有一个变量。我想在MySQL查询中检查我的PHP变量,如果它不是null,请在where子句中使用它。
buo.getShortUrl(with: lp) { (url, error) in
//url = "myrmndtest5.test-app.link/aLyM9DI2cS"
let domain = url
let parameter:AnyObject = "?id=5" as AnyObject
let testurl:NSURL = NSURL(string: "\(domain)) \(parameter)")!
print(testurl)
}
select * from T1
where post = "news" and $city = cityname and $city is not null
是PHP变量。
当$city
为null时,我遇到了一个问题,该问题应该显示所有新闻帖子,但不返回任何内容。
答案 0 :(得分:3)
由于$city
是一个PHP变量,如果它是NULL
,那么当您在查询中回显它时,您将一无所获。这将使查询无效;它看起来像这样:
select * from T1
where post = "news" and = cityname and is not null
要执行此操作,您需要在查询中将$city
括在引号中,然后将其与空字符串比较,而不是与NULL
进行比较。
select * from T1
where post = "news" and ('$city' = cityname or '$city' = '')
请注意,此用例的正确逻辑运算符为or
。
正如评论中指出的那样,您应该研究准备好的语句。这个问题有一些非常有用的信息:How can I prevent SQL injection in PHP?
答案 1 :(得分:-1)
尝试一下
select * from T1
where post = "news" and ($city = cityname or $city is not null )