2017-12-27 8 views
-2

INSERT 쿼리를 준비된 문을 사용하여 MySQL 데이터베이스에서 실행해야하는 PHP 스크립트를 작성하고 싶습니다.PHP로 준비된 문 작성하기

나는 초보자 인 PHP이므로 어떻게해야할지 모르겠다. 그래서 나는 Stackoverflow에 그것을 찾았고 How to create a secure mysql prepared statement in php? 을 발견했다.

그래서 나는 SELECT 쿼리를 준비하는

  1. prepare처럼,이 질문에 대해 허용 대답 하지만에서 수행과 동일한 방법으로, 사용되는 몇 가지 방법이 있습니다에 그 일을 시작

  2. 쿼리에 매개 변수를 바인딩하는 bind_param

  3. close에서에 가까워 야합니다.

내가 사용하려고 할 때 추천하지 않는 내용입니다. 또한 내가이 메소드를 사용하고 그 위에 포인터를 가져 가면 Visual Studio Code으로 문서가 표시되지 않으므로이 메소드가 더 이상 사용 가능하지 않다고 생각하게됩니다. 대신 prepare 방법의

Visual Studio Code 대신 bind_param의, odbc_prepare 제안, 그것은 mysqli_bind_param을 제안 대신 close, 그것은 odbc_close을 제안합니다.

나는 PHP 7.2

질문을 사용하고 있습니다 : 같은 방법은 prepare, PHP 7에서 bind_param 사용할 수 없습니다 close, 나는 이러한 방법 대신에 Visual Studio Code 나에게 제안하는 사람을 사용할 수 있습니까?

+1

http://php.net/manual/en/book.pdo.php – jeprubio

+0

* "질문 : PDO이 튜토리얼을 확인에 대한 자세한 내용은 방법 가까이, 준비 bind_param PHP에서 사용할 수 없습니다 같다 7이 방법 대신 Visual Studio 코드에서 제안한 것들을 사용할 수 있습니까? "* - 왜 PHP 7에서 사용할 수 없습니까? 게시하기 전에 설명서를 전혀 읽지 않았습니까? –

+0

@FunkFortyNiner 설명서를 읽었습니다. _Gant's_ 대답에 따르면'prepare' 또는'bind_param'은'mysqli' 접두어로만 사용할 수 있지만이 [Prepared Statements] (http://php.net/manual/en/mysqli.quickstart. prepared-statements.php) mysqli 객체로'prepare'와'bind_param' 메쏘드를 사용했습니다. 나는 똑같은 일을하고있다. 그러나 'Visual Studio Code'는이 방법들을 전혀 제안하지 않고있다.VSC가 PHP에 집중하지 않기 때문에 – Nick

답변

0

mysqli 개체를 절차 형식으로 mysqli_ 접두사없이 사용할 수 있습니다.

그러나 일반적으로 개체 지향 스타일이 선호됩니다.

PHP.net has a comparison of the two approches.

+0

봐 [Prepared Statements] http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) 여기서 그들은 mysqli 객체와 함께이 메소드들을 사용했다. 객체 접근법을 사용할 때,이 방법들은 제안되지 않고 절차 적 접근법을 사용할 때만 제안됩니다. – Nick

1

이러한 기능은 독립 실행 형 기능이 아닙니다. 그것들은 PDO 객체의 메소드입니다. PDO Tutorial

$pdo = new PDO(); 
$stmt = $pdo->prepare('SELECT * FROM users WHERE email = :email AND status=:status'); 
$stmt->execute(['email' => $email, 'status' => $status]); 
$user = $stmt->fetch();