【发布时间】:2020-05-14 14:27:53
【问题描述】:
所以,我正在使用一个查询来获取个人资料照片,我正在使用以下查询:
$sql = "SELECT photo FROM users WHERE login = '$username'";
我已经尝试了很多方法,有和没有引号。
$sql = "SELECT `photo` FROM `users` WHERE `login` = '$username'";
接下来的代码是这样的:
$result = mysqli_query($link, $sql);
echo "<script>console.log('photo: ".$sql."');</script>";
当我检查控制台时,我看到了这个错误: Uncaught SyntaxError: missing ) after argument list
当我只使用“从用户中选择照片”进行查询时,它会返回一个值。
在另一个页面上,我使用相同的代码来获取权限并返回我想要的值
$sql = "SELECT permission FROM users where login = '$username'";
$result = mysqli_query($link, $sql);
if ($result->num_rows > 0) {
while ($row = mysqli_fetch_array($result)) {
$save = $row[0];
}
}
权限列是 int;
照片栏是varchar;
【问题讨论】:
-
在浏览器中查看源码。您正在将查询字符串传递给您的 console.log。尽管即使您尝试传入
$result,也会收到错误消息,因为$result是mysqli_result,而不是photo。 -
我知道,我只是想检查我的查询,看看查询是对还是错。
-
你应该学会使用准备好的语句来防止 SQL 注入。
-
这可能是个好主意,但您可能希望将其记录到服务器。当您像这样将查询传递给 javascript 时,它看起来像
<script>console.log('photo: SELECT `photo` FROM `users` WHERE `login` = '$username'');</script>,正如您所看到的那样,它会搞砸单引号。这就是导致 javascript 错误的原因。
标签: php mysql query-string