PDO 연결에서 상수를 사용하거나 PDO 연결을 포함하는 함수를 호출 할 때 문제가 있습니다.PDO 연결 문자열에 상수 사용 및 PDO 연결로 함수 호출
필요한 경우에만 DB에 연결하는 기능을 사용하고 있습니다. DB 작업이 필요없는 페이지에서는 연결할 필요가 없습니다.
나는 많은 시도를했지만, 내가 잘못 될 수는 없다.
<?php
/** The name of the database */
define('DB_NAME', 'dev-db');
/** MySQL database username */
define('DB_USER', 'root');
/** MySQL database password */
define('DB_PASSWORD', 'dxdb');
/** MySQL hostname */
define('DB_HOST', 'localhost');
function connect(){
try
{**//Here's where the first problem is**
$conn = new PDO('mysql:host=DB_HOST;dbname=DB_NAME',DB_USER,DB_PASSWORD);
$conn ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e)
{
echo 'ERROR: ' . $e->getMessage();
}
}
connect();// Here's where it fails again
$sql = 'insert into names (names) values (:what)';
$what = "testValue";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':what', $what, PDO::PARAM_STR, 5);
$stmt->execute();
당신이'$ CONN = 새로운 PDO ('MySQL은 같은 문자열을 연결해야한다 : (DEV-DB가 유효한 데이터베이스 이름 인 경우 확실하지 오전하지만)
그래서, 코드가 될 수있다 : DB_HOST. '; dbname ='. DB_NAME. ', DB_USER, DB_PASSWORD);' – HamZa
오! 오래된 것들은 연결을 필요로하지 않았다.''$ link = mysql_connect (DB_HOST, DB_USER, DB_PASSWORD); "그래서 나는 여기가 같을 것이라고 생각했다. – Norman
글쎄, PHP는'echo 'DB_HOST';'는 문자열이나 상수라고 어떻게 말할 것인가? 그것은 문자열입니다 :-) – HamZa