HTML - PHP의 텍스트 영역을 사용하여 MariaDB 테이블에 두 개의 값 삽입
리눅스에서 PHP를 사용하여 HTML의 TEXT AREA의 텍스트를 mariaDB의 테이블에 추가하려고 합니다.기본적으로 양식에는 두 개의 "상자"가 있습니다.하나는 사용자를 식별하고 두 번째는 텍스트를 추가합니다.사용자가 이미 텍스트를 추가한 경우에는 더 이상 텍스트를 추가할 수 없습니다.저는 PHP의 쿼리를 사용하여 TEXT AREA(HTML에서)의 이름과 텍스트를 추가하는 데 어려움을 겪고 있습니다.아이디어 있어요?
이것은 마리아에 있는 나의 테이블입니다.DB:
create table TableMarch(
id int NOT NULL AUTO_INCREMENT,
name varchar(255) UNIQUE,
messagetext TEXT,
date DATE NOT NULL,
PRIMARY KEY (id)
);
이것은 HTML로 된 내 양식입니다.
---SOMETHING---
.
.
.
<body>
<form action="form_submit.php" class="alt" method="POST">
<div> <img class="marginauto" src="image.JPG" alt="centered image" /> </div>
<h2> <center>APP</center></h2>
<label for="name">ID</label>
<input type="text" name="name" id="name" placeholder="ID"/>
<textarea name="message" for="message" placeholder="Please, type your message" maxlength="300"></textarea>
<input type="submit" name="submit" value="Submit"/>
</form>
</body>
</html>
그리고 이것은 PHP로 된 제 코드입니다.
<?php
$host = "localhost";
$db_name = "dev_to";
$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 TableMarch(name, messagetext) VALUES( :name , :messagetext )";
$callToDb = $connection->prepare( $query );
$name=htmlspecialchars(strip_tags($name));
$messagetext = $_POST['messagetext'];
//$callToDb->bindParam(":name", $name);
$callToDb->bindParam(":name", $name, ":messagetext", $messagetext );
if (!$callToDb->execute()) {
$_SESSION['message']='This is your message';
$affected_rows = $callToDb->rowCount();
if ($affected_rows == 0) {
$query2 = "SELECT date FROM test WHERE name = ?";
$result2 = $connection->prepare($query2);
$result2->execute([$name]);
$datee = $result2->fetch();
foreach ($datee as $value);
printf('<h1> User ' . $name . ' has already sent a comment: ' . $value . '</h1>' );
echo '<p><a href="http://xx.xx.xx.xx/app.html" title="Return to previous page">« return to app</a></p>';
}
} else {
printf('<h1> Thanks for sending your comment. </h1>');
echo '<p><a href="http://xx.xx.xx.xx/aplicativo.html" title="Return to previous page">« return to app</a></p>';
}
}
if( isset($_POST['submit'])){
$name = htmlentities($_POST['name']);
//then you can use them in a PHP function.
$result = saveData($name);
//echo $result;
}
else{
echo '<h3 style="text-align:center;">ERROR WITH LOGIN</h3>';
}
?>
값 사이의 쉼표 누락 시도
INSERT INTO TableMarch(name, messagetext) VALUES( :name , :messagetext)
PDO 예외도 설정합니다.
$connection = new PDO("mysql:host=" . $host . ";dbname=" . $db_name, $username, $password);
$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
귀하의 경우(또는 다른 경우)에 오류가 표시됩니다.
치명적 오류:발견되지 않은 PDO 예외: SQLSTATE[HY000]:일반 오류: 1364 필드 '날짜'에 기본값이 없습니다...
괜찮으시다면date
필드가 null이거나 항상 삽입되는 유효한 날짜 레코드가 삽입됩니다.
방금 테스트했습니다.
그리고! 꼭!$_POST['name']
그리고.$_POST['textmessage']
전송됩니다.
제가 볼 수 있는 것처럼, 당신이 가지고 있는 정보입니다.name="message"
하지만 가져오려고 노력하는 것.textmessage
먼저 이 버그들을 모두 수정해주시기 바랍니다.디버거와 브라우저의 검사기를 사용하여 필요한 모든 데이터가 스크립트에 도착하는지 확인합니다.
언급URL : https://stackoverflow.com/questions/66373508/insert-two-values-into-mariadb-table-using-a-textarea-in-html-php
'programing' 카테고리의 다른 글
한 가지에서 다른 가지로 체리 픽하는 방법 (0) | 2023.06.30 |
---|---|
mongob 설명 이해하기 (0) | 2023.06.30 |
Angular2 예외:'routerLink'는 알려진 네이티브 속성이 아니므로 바인딩할 수 없습니다. (0) | 2023.06.30 |
Mongodb에서 내장된 문서 속성을 업데이트하는 중 (0) | 2023.06.30 |
Firebase 클라우드 기능 배포 오류 (0) | 2023.06.30 |