분류 php

작업을 완료하는 9 가지 유용한 PHP 팁 및 코드 스니펫

컨텐츠 정보

  • 조회 362 (작성일 )

본문

1. SQL 주입을 방지하기 위해 데이터베이스로 작업하는 경우 Prepared Statements 사용 


출처 : https://stackoverflow.com/a/60496/9478774


$stmt = $pdo->prepare('SELECT * FROM employees WHERE name = :name');

$stmt->execute([ 'name' => $name ]);

foreach ($stmt as $row) {
    // Do something with $row
}


이것은 연결을 설정하는 것입니다. 복사하여 붙여 넣을 수 있습니다.


$dbConnection = new PDO('mysql:dbname=dbtest;host=127.0.0.1;charset=utf8', 'user', 'password');

$dbConnection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$dbConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


$preparedStatement = $db->prepare('INSERT INTO table (column) VALUES (:column)');

$preparedStatement->execute([ 'column' => $unsafeValue ]);



2. 동적 쿼리를 위한 준비된 문? if else를 사용하여 가능한 값을 제한하십시오. 


출처 : https://stackoverflow.com/a/60496/9478774


if (empty($dir) || $dir !== 'DESC') {
   $dir = 'ASC';
}
// only 2 possible options


3. 문자열에 특정 단어가 포함되어 있는지 확인 


출처 : https://stackoverflow.com/a/4366748/9478774


// @ver below 8
$a = 'How are you?';

if (strpos($a, 'are') !== false) {
    echo TRUE;
}

// @ver 8
if (str_contains('How are you', 'are')) {
    echo TRUE;
}


4. array_key_exists() 또는 isset()로 정의되지 않은 인덱스 / 오프셋 처리 


출처 : https://stackoverflow.com/a/4261200/9478774


//isset()
$value = isset($array['my_index']) ? $array['my_index'] : '';
//array_key_exists()
$value = array_key_exists('my_index', $array) ? $array['my_index'] : '';


5. $_POST, $_GET 또는 $_REQUEST 값을 얻으려면 isset ) 또는! empty()를 사용할 수 있습니다. 


출처 : https://stackoverflow.com/a/4261200/9478774


$value = isset($_POST['value']) ? $_POST['value'] : '';
//empty()
$value = !empty($_POST['value']) ? $_POST['value'] : '';

//for PHP 7 and later
$value = $_POST['value'] ?? '';


6. PHP에서 오류 표시 


출처 : https://stackoverflow.com/a/21429652/9478774


ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);


7. 항상 require_once() 99,99 %를 기억하십시오. 


include()와 비교할 때 require() 함수는 오류를 다르게 처리하고 스크립트 실행을 중지하고 include()는 오류에도 불구하고 스크립트를 계속합니다.


8. 리디렉션 하려는 경우 도우미 함수 


출처 : https://stackoverflow.com/a/768472/9478774


function redirect($url, $statusCode = 303)
{
   header('Location: ' . $url, true, $statusCode);
   die();
}


9.이 스크립트로 JSON 반환 


출처 : https://stackoverflow.com/a/4064468/9478774


<?php
$data = /** whatever you're serializing **/;
header('Content-Type: application/json');
echo json_encode($data);