pdo - 멤버 함수 호출 prepare () 비 - 객체 [duplicate]
PHPpdo - 멤버 함수 호출 prepare () 비 - 객체 [duplicate]
이 코드는 오류가 발생합니다.
암호:
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를 가진 초보자이다.
해결법
-
==============================
1.$ pdo는 정의되지 않았습니다. 함수 안에서 선언하지 않고 인수로 전달되지 않습니다.
$ pdo는 정의되지 않았습니다. 함수 안에서 선언하지 않고 인수로 전달되지 않습니다.
그것을 전달하거나 (좋은) 글로벌 네임 스페이스에서 정의하고 전역 $ pdo를 맨 위에 배치하여 함수에서 사용할 수 있도록해야합니다 (좋지 않음).
-
==============================
2.동일한 PHP 페이지에서 데이터베이스 연결 기능을 만들고 필요할 때마다 해당 함수를 호출 할 수 있습니다. 같이,
동일한 PHP 페이지에서 데이터베이스 연결 기능을 만들고 필요할 때마다 해당 함수를 호출 할 수 있습니다. 같이,
public function connection() { $dbc = new PDO("mysql:host=localhost;dbname=chat","root",""); } public function1() { this->connection(); // now you have the connection.. now, time for to do some query.. } public function2() { this->connection(); // now do query stuffs.. }
또는 필요할 때마다 해당 페이지에 데이터베이스 연결 회선을 간단하게 작성할 수 있습니다. 같이,
public function a() { // connecting DB for this function a only... $dbc = new PDO("mysql:host=localhost;dbname=chat","root",""); // bla bla bla... } public function b() { // connecting DB for this function b only... $dbc = new PDO("mysql:host=localhost;dbname=chat","root",""); // abra ke dabra... boom }
-
==============================
3.$ pdo 객체가 함수 내에서 범위 내에 있지 않습니다.
$ pdo 객체가 함수 내에서 범위 내에 있지 않습니다.
-
==============================
4.@Anvd. 나는 똑같은 문제가 있었지만 동일한 페이지에 데이터베이스를 연결하여 연결하는 페이지를 포함시키지 않고 해결했습니다. 그것은 나를 위해 일했다.
@Anvd. 나는 똑같은 문제가 있었지만 동일한 페이지에 데이터베이스를 연결하여 연결하는 페이지를 포함시키지 않고 해결했습니다. 그것은 나를 위해 일했다.
<?php try { $pdo = new PDO('mysql:host=localhost;dbname=tish_database;charset=utf-8','root',''); } catch(PDOException $e){ echo 'Connection failed'.$e->getMessage(); } ?>
-
==============================
5.PDO에서 mysql_num_rows에 해당하는 것은 기본적으로 FETCH_NUM이며 선택된 행의 인덱스 번호를 반환합니다.
PDO에서 mysql_num_rows에 해당하는 것은 기본적으로 FETCH_NUM이며 선택된 행의 인덱스 번호를 반환합니다.
-
==============================
6.나는 똑같은 오류를 겪고있었습니다. 그런 다음 PDO 연결을 종료 한 후 수업을 호출하는 것을 보았습니다.
나는 똑같은 오류를 겪고있었습니다. 그런 다음 PDO 연결을 종료 한 후 수업을 호출하는 것을 보았습니다.
-
==============================
7.예, 나는 또한 이것을 어려운 방법으로 배웠습니다. 함수 내에서 DB 연결을 열어야합니다. DB에 대한 연결은 함수를 호출하기 전에 열지 만 함수 내부에서 열릴 것이라고 가정합니다. 그래서:
예, 나는 또한 이것을 어려운 방법으로 배웠습니다. 함수 내에서 DB 연결을 열어야합니다. DB에 대한 연결은 함수를 호출하기 전에 열지 만 함수 내부에서 열릴 것이라고 가정합니다. 그래서:
function whatever(){ //OPEN DB CONNECTION CODE //CLOSE DB return whateverValue; }
-
==============================
8.버퍼링되지 않은 활성 u 리에서이 오류를 계속 가져올 수도 있습니다.
버퍼링되지 않은 활성 u 리에서이 오류를 계속 가져올 수도 있습니다.
그래서, 라인 41에서,
$stmt = null;
-
==============================
9.이 코드를 시험해 보라.
이 코드를 시험해 보라.
$query =$pdo->prepare("SELECT email FROM users WHERE email = ?"); $email = mysql_real_escape_string($_POST['email']); $stmt->bindValue(1, $email); $ok = $stmt->execute(); $results = $query->fetchAll(PDO::FETCH_ASSOC); if ($results == 0) { return true; } else { echo '<h1>something</h1>'; return false; }
from https://stackoverflow.com/questions/5346186/pdo-call-to-a-member-function-prepare-on-a-non-object by cc-by-sa and MIT license
'PHP' 카테고리의 다른 글
PHP에서 XML 파일의 속성 값을 가져 오는 방법은 무엇입니까? (0) | 2018.09.20 |
---|---|
다차원 배열 값에 액세스하기 (0) | 2018.09.20 |
PHP는 다차원 배열 중복 제거 (0) | 2018.09.20 |
PHP에서 HTML 전자 메일 보내기 (0) | 2018.09.20 |
html 태그 외부에서 일치하는 PHP 정규식 (0) | 2018.09.19 |