猿问

pdo - 在非对象上调用成员函数prepare()

此代码出错:


致命错误:在第42行的C:\ Users \ fel \ VertrigoServ \ www \ login \ validation.php中的非对象上调用成员函数prepare()


码:


   function repetirDados($email) {

        if(!empty($_POST['email'])) {


            $query = "SELECT email FROM users WHERE email = ?";


            $stmt = $pdo->prepare($query); // error line: line 42


            $email = mysql_real_escape_string($_POST['email']);


            $stmt->bindValue(1, $email);


            $ok = $stmt->execute();


            $results = $stmt->fetchAll(PDO::FETCH_ASSOC);


            if ($results == 0) {

                return true;

            } else {

                echo '<h1>something</h1>';

                return false;

            }

        }

    }

可能的原因是什么?另一个问题,相当于mysql_num_rows什么?对不起,我是pdo的新手


呼如林
浏览 384回答 3
3回答

冉冉说

$pdo未定义。你没有在函数中声明它,并且它不是作为参数传递的。您需要将其传递给(好),或者在全局命名空间中定义它,并通过置于global $pdo顶部(坏)使其可用于您的函数。

江户川乱折腾

我遇到了同样的问题,但我确实通过在同一页面中连接数据库来解决它,而不仅仅是包含联合页面。它对我有用<?phptry {$pdo = new PDO('mysql:host=localhost;dbname=tish_database;charset=utf-8','root','');} catch(PDOException $e){echo 'Connection failed'.$e->getMessage();}?>
随时随地看视频慕课网APP
我要回答