Php/Mysql:当按ID匹配但名称有效时,无法将输出打印为html选择表?

Php/Mysql:当按ID匹配但名称有效时,无法将输出打印为html选择表?,php,html,mysql,Php,Html,Mysql,因此,下面我正在修改的网站上的代码[现在从数据库中提取链接]工作得非常完美,并将匹配的行和列打印到html中。有一列用于短名称[name2,VARCHAR]和一个要匹配的自动递增整数列[id] function rainmaker($fname) { $connect = new PDO('mysql:host=localhost;dbname=weather;', '******', '***'); $sql = $connect->query('SELECT `link

因此,下面我正在修改的网站上的代码[现在从数据库中提取链接]工作得非常完美,并将匹配的行和列打印到html中。有一列用于短名称[name2,VARCHAR]和一个要匹配的自动递增整数列[id]

function rainmaker($fname) {
    $connect = new PDO('mysql:host=localhost;dbname=weather;', '******', '***');
    $sql = $connect->query('SELECT `link` FROM `satellite`  WHERE `name2` = "'.$fname.'"');
    while ($result = $sql->fetch()){
        $urllink = $result['link'];}
        $linky = fullLinkedThumbnail($urllink,150);
        print $linky;
    }
再往下

<TD ALIGN="CENTER"><P><?php rainmaker('ato'); ?></P></TD>
我无法传递表名,sql查询报告失败。不知道为什么,但我想我犯了一些语法错误。现在,我只需要解决这个问题

如果我通过phpadmin运行selectqueryforid,它会很好地匹配并打印出该行,这样就不会与null值不匹配

不要连接字符串,它会断开并可用于sql注入。 使用带有占位符的准备语句

如果卫星中没有符合条件的行,请不要尝试查找拇指邮件


尝试$query='SELECT-FROM-satellite,其中name2='.$fname';die$query。然后将$query剪切并粘贴到MySQL中,看看是否得到任何结果。即。。。确保生成的查询格式正确。通过phpadmin,使用该sql匹配并返回行可以正常工作。请参见此处:$urllink=$result['link'];}-你的尾端有一个杂散的右括号。或者你的函数缩进需要修复:我试着在打印函数之后移动它,没有运气,即使是这样;名称匹配仍然有效,但ID无效。@udonsoup16不能对表名称使用参数。请看。1。我准备了带有占位符的语句;删除了它们,因为我通过mysql查询的变量对表名passub有一个单独的问题。2.运行相同的查询时,行在myphpadmin中匹配,因此我不知道它在html中失败的原因。
$sql = $connect->query('SELECT `link` FROM `satellite` WHERE `id` = "'.$fname.'"');
....

<TD ALIGN="CENTER"><P><?php rainmaker('1'); ?></P></TD>
   function rainmaker($fname) {
 $connect = new PDO('mysql:host=localhost;dbname=weather;', '******', '***');
$psql = $connect->prepare('SELECT `link` FROM ?  WHERE `id` = ?');
$psql->execute(array($table,$fname));
while ($result = $psql->fetch()){
$urllink = $result['link'];}
$linky = fullLinkedThumbnail($urllink,150);
print $linky;}