我使用PHP执行查询的数据库。我已经成功地通过该程序执行了许多查询,但最近一次查询给我带来了麻烦。原来的SQL查询如下:格式在mysqli_query
SELECT Champion, RunnerUp
FROM playoffs
WHERE Champion = "Detroit Red Wings"
AND (RunnerUp = "Montreal Canadiens" OR RunnerUp = "New York Rangers");
这种成功运行和数据库在HeidiSQL直接使用时产生正确的输出。我试着在如下的程序来实现它,换出实际的团队名称为PHP变量:
$result = mysqli_query($link, "SELECT Champion, RunnerUp
FROM playoffs
WHERE Champion = '$champion'
AND (RunnerUp = '$RunnerUp' OR RunnerUp = '$RunnerUp2')") ;
在这个版本中,似乎括号的嵌入式集不被认定为这样的,而不是看似是报价的一部分。这个版本没有输出。
我修改,如下所示:
$result = mysqli_query($link, "SELECT Champion, RunnerUp
FROM playoffs
WHERE Champion = '$champion'
AND RunnerUp = '$RunnerUp' OR RunnerUp = '$RunnerUp2'") ;
删除第二组括号中,它执行了,但因为逻辑读取不同不会产生期望的结果,给我的元组,只要$冠军和$亚军比赛或者只要$ RunnerUp2是亚军。无论如何执行这个声明,因为我最初打算使用PHP?
UPDATE:把查询到的变量,方法如下:
$query = "SELECT Champion, RunnerUp
FROM playoffs
WHERE Champion = '$champion'
AND (RunnerUp = '$RunnerUp' OR RunnerUp = '$RunnerUp2')";
,并呼应它,我得到的输出
SELECT Champion, RunnerUp FROM playoffs WHERE Champion = '' AND (RunnerUp = 'Montreal Canadiens' OR RunnerUp = 'Toronto St. Patricks')
所以它看起来像出于某种原因,我的冠军变量从未收到任何东西这是因为最初调用它时,它被称为“冠军”而不是“冠军”。
把查询一个叫'$ query'那么你可以'回声$ query变量的内部;',看看查询看起来你希望它。您的'$ champion','$ RunnerUp'或'$ RunnerUp2'变量可能会丢失空白。然后像这样调用:'mysqli_query($ link,$ query);'因为它看起来整洁。如果这不能解决问题,请更新问题。 – varlogtim
这帮助我弄清楚在这些行之前我在哪里做了格式错误。谢谢 – user3068177