반응형
PHP의 MariaDB에서 정보 가져오기
저는 MariaDB로 단순한 데이터베이스에 값을 저장하기 위한 코드를 PHP에 가지고 있습니다.
제 테이블입니다.
create table test(
id int NOT NULL AUTO_INCREMENT,
name varchar(255) UNIQUE,
date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);
PHP 코드는 다음과 같습니다.
<meta http-equiv="refresh" content="6;http://10.15.34.194/form.html">
<?php
$host = "localhost";
$db_name = "XXX";
$username = "XXX";
$password = "XXX";
$connection = null;
try{
$connection = new PDO("mysql:host=" . $host . ";dbname=" . $db_name, $username, $password);
$connection->exec("set names utf8");
}catch(PDOException $exception){
echo "Connection error: " . $exception->getMessage();
}
function saveData($name){
global $connection;
$query = "INSERT INTO test(name) VALUES( :name )";
$callToDb = $connection->prepare( $query );
$name=htmlspecialchars(strip_tags($name));
$callToDb->bindParam(":name", $name);
if (!$callToDb->execute()) {
$affected_rows = $callToDb->rowCount();
if ($affected_rows == 0) {
printf('<h1> register: ' . $name . ' ALREADY IN TABLE </h1>');
}
} else {
printf('<h1> SAVING RESULT ' . $name . '</h1>');
}
}
if( isset($_POST['submit'])){
$name = htmlentities($_POST['name']);
$result = saveData($name);
echo $result;
}
else{
echo '<h3 style="text-align:center;">ERROR</h3>';
}
?>
이 인쇄물에는 값이 저장되었을 때의 데이터베이스 타임스탬프를 보여주고 싶습니다.
printf('<h1> register: ' . $name . ' ALREADY IN TABLE </h1>');
현재 시도하고 있는 것은 반복할 때 테이블 내에 있는 이름과 경고만 보여주는 값을 등록하는 것입니다.그러나 테이블에 생성되는 타임스탬프(및 clumn "date"에 저장됨)도 보여 주고 싶습니다.
두 번째 쿼리를 생성하려고 했지만 코드가 깨지고 있습니다.
다음과 같은 인쇄물을 만들고 싶습니다.
printf('<h1> register: ' . $name . ' ALREADY IN TABLE </h1>' '<h1> timestamp : ' . $date . '</h1>);
두 번째 dabatase 연결을 만드는 방법과 $name 변수를 사용하여 새 쿼리를 재생성하여 반복 변수의 타임스탬프를 가져오고 $name 변수와 $date를 모두 포함하는 방법을 알 수 없습니다.
사용할 수 있습니다.try {} catch () {}
접근법:
function saveData($connection, $name){
//global $connection;
$query = "INSERT INTO test(name) VALUES( :name )";
$callToDb = $connection->prepare( $query );
$name=htmlspecialchars(strip_tags($name));
$callToDb->bindParam(":name", $name);
try {
$callToDb->execute();
printf('<h1> register: ' . $name . ' </h1>');
} catch (PDOException $e) {
$error = $e->errorInfo;
printf('<h1> SAVING RESULT ' . $error[2] . '</h1>');
}
}
이 쿼리를 사용하여 데이터베이스에서 선택할 수 있습니다.
<?php
function saveData($connection, $name){
$query = "INSERT INTO test(name) VALUES( :name )";
$callToDb = $connection->prepare( $query );
$name=htmlspecialchars(strip_tags($name));
$callToDb->bindParam(":name", $name);
try {
$callToDb->execute();
printf('<h1> register: ' . $name . ' </h1>');
} catch (PDOException $e) {
$error = $e->errorInfo;
printf('<h1> SAVING RESULT ' . $error[2] . '</h1>');
}
$query = "SELECT date FROM test WHERE name = ?";
$result = $connection->prepare($query);
try {
$result->execute([$name]);
$date = $result->fetch();
printf('<h1> on ' . $date . '</h1>');
}catch(PDOException $e){
$error = $e->errorInfo;
printf('<h1> SAVING RESULT ' . $error[2] . '</h1>');
}
}
//just to test the connection
$name = 'Gerrit';
$result = saveData($connection, $name);
크레딧: @Slava Rozhnev(이 코드의 대부분을 그가 작성했습니다).질문에 더 잘 대답하기 위해서일 뿐이지 훔치거나 하는 것은 아닙니다.
언급URL : https://stackoverflow.com/questions/65904087/get-info-from-mariadb-in-php
반응형
'IT' 카테고리의 다른 글
JavaScript 파일 업로드 크기 확인 (0) | 2022.12.27 |
---|---|
navigator.geolocation.getCurrentPosition이 작동하지 않을 수 있음 (0) | 2022.12.27 |
javax.servlet 가져오기를 확인할 수 없습니다. (0) | 2022.12.27 |
단일 스테이트먼트에서 Java로 실행된 여러 쿼리 (0) | 2022.12.27 |
2D 어레이에서의 피크 검출 (0) | 2022.12.27 |