致命错误:在null上调用成员函数bindParam()

时间:2015-07-12 06:22:35

标签: php mysql pdo pdostatement bindparam

我需要一些帮助。我有一些嵌套的SELECT语句,它们获取用户的ID,然后使用该ID来搜索MySQL中的另一个表。我有一个foreach()循环,如果文件系统中没有一个,则使用第一个查询中的user_id为用户创建一个文件夹。然后我使用bindParam()为它分配一个变量,并在另一个查询中使用它来获取用户的名字。但是,在第29行的C:\ foo \ bar \ foobarscript.php中调用'对null的成员函数bindParam()调用并抛出异常。这是我的代码,直到休息......

try {
$con = new PDO("mysql:host=$dbname;dbname=$db", $user, $pass);
//Set the PDO error mode to exception
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$con->beginTransaction();
$stmt = $con->prepare("SELECT user_id
                        FROM users");
$stmt->execute();
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
$res = $stmt->fetchAll();
foreach($res as $row) {
    $uid = $row['user_id'];
    $filename = './reports/'.$uid.'';
    if(!file_exists($filename)) {
        if(!mkdir('./reports/'.$uid)) {
            die('Failed to create folders..');
        }
    }
    $stmt2->bindParam(':uid', $uid);     //<--- Code breaks here
    $stmt2 = $con->prepare("SELECT CONCAT(fname,' ',lname) as fullname FROM users WHERE user_id = :uid");
    $stmt2->execute();
    $fullName = $stmt2->fetchAll();
    $userArray[] = array_fill_keys($uid, $fullName);
    $stmt2->closeCursor();
}

我上下搜索并尝试重写它,逐个调试。一切正常,直到我把它全部重新组合在一起,我再次得到这个错误。我非常感谢任何帮助!

编辑:我甚至尝试删除指定的变量和绑定,如:

$stmt2->bindParam(':uid', $row['user_id']);

0 个答案:

没有答案