PHP&SQL:使用连接查询名称
问题描述:
长时间潜伏者,第一次海报。我遇到了一个问题,我的mySQL数据库中的一个查询在PHP中没有返回任何内容。该查询在使用mySQL数据库时起作用,并且我假设在我的php文件中,但不会打印出任何内容,并返回为false值。任何帮助或提示/技巧,你可以给我的赞赏,我大约一年没有积极使用SQL,我试图在非常有限的时间内尽可能多地学习PHP,所以我的语法可能不正确。我知道我的数据库已连接。PHP&SQL:使用连接查询名称
以下代码在程序中进一步发挥作用。
$patIDQuery=("SELECT ID FROM patients WHERE usernam3='$myusername'");
$patientID=mysqli_query($db, $patIDQuery);
$row=mysqli_fetch_assoc($patientID);
$user = $row['ID'];
$_SESSION['myUserID']=$user;
在mySQL中,这段代码有效,我试图得到相同的结果。
SELECT medications.CLINNAME FROM medications RIGHT JOIN patientData ON patientData.medID=medications.medID WHERE patientData.ID='*the actual patient id*';
代码的问题
<?php
$clinNameQ=("SELECT * FROM medications RIGHT JOIN patientData ON 'patientData.medID'='medications.medID' WHERE patientData.ID='$user'");
$clinName=mysqli_query($db,$clinNameQ);
$rowClin=mysqli_fetch_assoc($clinName);
$clinicalName=$rowClin['CLINNAME'];
echo $clinicalName;
?>
我一直在瞎搞“”和“”,但似乎没有一直在努力。我想知道是否存在反斜线问题,或者是否(我认为是这样),这是取回问题。
帮助非常感谢!
答
似乎带有引号的问题,https://stackoverflow.com/a/11321508/287948
尝试
$clinNameQ=("
SELECT *
FROM medications RIGHT JOIN patientData
ON `patientData.medID`=`medications.medID`
WHERE patientData.ID='$user'
");
答
您可以从查询字符串中删除`报价:
$clinNameQ = "SELECT *
FROM medications
RIGHT JOIN patientData ON patientData.medID=medications.medID
WHERE patientData.ID='$user'";
您已经使用围绕列名的单引号。我认为这是一个印刷错误,并投票结束。 –
@GordonLinoff信不信由你,唯一我不得不去试的是从加入声明中删除单引号,其中我知道我昨天曾经试过。谢谢你提醒我检查一下!它适用于第一种情况,现在我必须构建其余部分。 –
请记住使用back tics来引用列和表名称,值为单引号或双引号。 –