我如何将artistName作为变量mysqli

问题描述 投票:0回答:1

嘿,我想知道是否有可能从mysqli查询中获取一个值并在同一页面中使用它,如果可以的话,我该怎么做?

$sql2 = "select artistName from ARTIST";
$result2 = $conn->query($sql2);
if($result2->num_rows != 0){
  echo "<p>Artist: <select artistname=\"artistName\">";
  while ($val2 = $result2->fetch_assoc()) {
  echo "<option value='$val2[artistName]'>$val2[artistName]</option>";
  }
echo "</select></p>";
}

我正尝试在下面提出此请求:

$addArt = "update ARTIST set Aname='$fileName' where artistName='$val2[artistName]'";

其中文件名是任意文件

php mysql mysqli
1个回答
0
投票

多个问题:

  1. 混合引号:
    "<option value='$val2[artistName]'>$val2[artistName]</option>"
    "update ARTIST set Aname='$fileName' where artistName='$val2[artistName]'"

与双引号和heredoc语法不同,特殊字符的变量和转义序列在单引号引起来的字符串中不会扩展。

参考:https://www.php.net/manual/en/language.types.string.php

  1. SQL注入
    "update ARTIST set Aname='$fileName' where artistName='$val2[artistName]'"

您需要小心获取值$val2[artistName],否则可能会导致SQL注入攻击

© www.soinside.com 2019 - 2024. All rights reserved.