【问题标题】:Php Error on Query查询时出现 PHP 错误
【发布时间】:2011-07-28 06:33:18
【问题描述】:

区块1

<?php
// Filter our input.
$dID = filter_input(INPUT_GET, 'dID', FILTER_SANITIZE_NUMBER_INT);
if(!$dID) {
    echo "<h2 style='color:red;'>Invalid Department</h2>";
    exit;
}
$username = "###";
$password = "####";
$pdo = new PDO('mysql:host=localhost;dbname=####', $username, $password);
$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$sth = $pdo->prepare('

$sth = $pdo->prepare(' 选择名称、fname、lname、picpath、电子邮件 FROM系,教授 在哪里 Department.dID = ? '); '); $sth->执行(数组( $dID ));

?>

区块2

    <?php
            echo "<span>{$row['name']}";
            // Did we get any professors in this dept?
            while($row2 = $sth->fetch(PDO::FETCH_ASSOC)) {
                    echo "<span>{$row['fname']} | {$row['lname']} | </span>"


                    ; // echo
            }
            unset($sth);
    ?>

输出给定:

| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |

部门表:

教授表:

它似乎不喜欢我的查询,但不知道为什么,它没有从数据库中提取任何内容。会不会是sql错误?我被难住了

当我在 PhpmyAdmin 中测试时,它给了我:

更新的查询: 选择名称、fname、lname、picpath、电子邮件 FROM系,教授 WHERE Department.dID = 教授.dID AND Department.dID = ?

它仍然不起作用。基本上,该页面在 url 中有例如:'/dept.php?dID=30' 它获取 dID 并且应该显示一个部门中的所有教授。有人吗???

【问题讨论】:

  • 尝试改用WHERE Department.dID = ?
  • @yoavmatchulsky - 是的,我确实尝试过。我的查询现已更新。
  • 它没有显示错误,只是显示上面的“输出”

标签: php sql


【解决方案1】:

您是否尝试过直接对数据库执行查询?我不是 PHP 编码员,我的大部分 SQL 经验都是 T-SQL,但你的 where 子句说 WHERE WHERE dID = ? - 我猜这可能是几件事。首先,除非它是一个特殊的 MySql 东西,否则问号不会让你得到你想要的东西。此外,在这种情况下, dID 将是一个模棱两可的引用,因为两个表似乎都有 dID 列。另外,我在想(再一次,除非 MySql 的工作方式与 T-SQL 不同)你是在加入之后,而不是把 Department.dID = Professor.dID 放在你的 where 子句中。另外,重申一下,在将其放入 PHP 之前直接执行此操作可能会导致您在找出查询不工作的原因时遇到一些很好的错误。

【讨论】:

    【解决方案2】:

    在您的 while 循环中

            while($row2 = $sth->fetch(PDO::FETCH_ASSOC)) {
                    echo "<span>{$row['fname']} | {$row['lname']} | </span>"
    
    
                    ; // echo
            }
    

    您正在使用 $row2 但在 echo 中您正在使用 $row['fname']

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-02
      • 1970-01-01
      • 2012-02-22
      • 2016-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多