我收到了以下字符串
"SELECT song_title,artist FROM SONG WHERE SONG_TITLE='"+title+"' AND ARTIST='"+artist+"' ";
如果字符串艺术家为空,'“+ artist +”'的值是多少?是'+ + artist +''null?
答案 0 :(得分:1)
它会创建一个看起来像我确定你可以猜到的字符串:
SELECT song_title,artist FROM SONG WHERE SONG_TITLE='Uptown Funk You Up' AND ARTIST=''
因此,搜索只会找到标题为“Uptown Funk You Up”的歌曲,其中艺术家为空或NULL。如果你有一个标题是'Uptown Funk You Up'并且艺术家是“Mark Ronson”,那么它将不会在你的数据库中找到一行。
如果这不是你的意图,那么你需要在创建查询之前或创建查询时使用OR逻辑比较或一些额外的逻辑。测试标题或艺术家是否为空字符串,并更改您的查询(下面的伪代码,而不是PHP saavy)
query = "SELECT song_title,artist FROM SONG WHERE "
if title != "" then
query += "title='"+title+"'"
if artist != "" then
query += " AND artist='"+artist+"'"
results = mySQL(query)
那有道理吗?这有帮助吗?