설치가 Apache24, php 환경 및 postgresql 데이터베이스가 있습니다. db 테이블에 값이있는 일부 열 (전부는 아님)을 채우려고하지만 예상대로 작동하지 않습니다.pg_query INSERT INTO not working
나는 오류/경고 및 DB 다음은 채워지지 않습니다 얻을 :) (pg_query : 경고를 쿼리 실패 : 오류 : 구문 오류 또는 근처 "c329a92850f6d539dd376f4816ee2764517da5e0235514af433164480d7a"LINE 1에 ... 단어, 소금) 가치 (DEFAULT , [email protected], per, 8254c329a92850 ...^C : \ Users \ Public \ Server \ Apache24 \ htdocs \ eMe \ newuser.php on line 34
이 문제에 대한 지원을 매우 높이 평가합니다. 비슷한 질문을 검색하지만 내 상황에 대한 답을 해석 할 수 있었다.
<?php
# Registration form input to postgresql user table in myDB
session_start();
# Retrieve data from input form
$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
# Concatenate and hash password with salt
require_once(dirname(__DIR__).'\eMe\saltgenerator.php');
global $randString;
#$randString = pg_escape_string($randString);
$isalt = pg_escape_string($randString);
$saltandpassword = $isalt. $password;
$hashedpassword = hash('sha256', $saltandpassword, false);
$username = pg_escape_string($username);
$email = pg_escape_string($email);
$hashedpassword= pg_escape_string($hashedpassword);
# Insert data into Postgresql database
# INSERT INTO table_name (column1, column2, column3 .....) VALUES (value1, value2, value3....)
include_once(dirname(__DIR__).'\eMe\config.php');
$query = "INSERT INTO users (userid, mailaddress, username, userpassword, salt) VALUES (DEFAULT, $email, $username, $hashedpassword, $isalt)";
#$result =
#pg_query_params($query);
pg_query($query);
?>
나는 따옴표를 포함하려고 노력하고 백틱 인용문은이 link에 설명되어 있지만 문제를 해결하지는 않습니다. 오류/경고는 약간 다릅니다 :
경고 : pg_query() : 쿼리 실패 : "또는"근처의 구문 오류 LINE 1 : INSERT INTO 사용자 (userid
,`mailaddress`,`username`, ... 30 행의 C : \ Users \ Public \ Server \ Apache24 \ htmlocs \ eMe \ newuser.php
[MySQL에서 작은 따옴표, 큰 따옴표 및 백틱을 사용하는 경우] 가능한 복제본 (https://stackoverflow.com/questions/11321491/when-to-use-single-quotes-double-quotes -and-backticks-in-mysql) – aynber
pgsql과 상호 작용할 수있는 PDO로 전환하는 것이 좋습니다. . 준비된 문과 매개 변수 바인딩을 사용하면 따옴표 문제를 걱정할 필요가 없으며 값을 이스케이프 처리 할 필요가 없습니다. – aynber
조언 해 주셔서 감사합니다. 내가 PDO를 사용할 수 있는지 알 수 없습니다. 나는 구문/설정을 이해하기가 약간 어렵다고 느낀다. – om78