Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在HTML-PHP中使用textarea将两个值插入MariaDB表_Php_Mysql_Mariadb - Fatal编程技术网

在HTML-PHP中使用textarea将两个值插入MariaDB表

在HTML-PHP中使用textarea将两个值插入MariaDB表,php,mysql,mariadb,Php,Mysql,Mariadb,我正在尝试在Linux中使用PHP将HTML文本区域中的一些文本添加到我在mariaDB中的表中。 表单基本上有两个“框”。一个用于标识用户,另一个用于添加文本。 如果用户已添加文本,则无法添加更多文本。 我正在努力使用PHP中的查询从TEXTAREA(来自HTML)添加名称和文本。 有什么想法吗 这是我在MariaDB的桌子: create table TableMarch( id int NOT NULL AUTO_INCREMENT, name varc

我正在尝试在Linux中使用PHP将HTML文本区域中的一些文本添加到我在mariaDB中的表中。 表单基本上有两个“框”。一个用于标识用户,另一个用于添加文本。 如果用户已添加文本,则无法添加更多文本。 我正在努力使用PHP中的查询从TEXTAREA(来自HTML)添加名称和文本。 有什么想法吗

这是我在MariaDB的桌子:

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">&laquo; 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">&laquo; 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>';
}
?>

值之间缺少逗号,请重试

插入到TableMarch(名称,messagetext)值(:名称,:messagetext)
同时启用PDO异常:

$connection=new-PDO(“mysql:host=“.$host.”dbname=“.$db_name、$username、$password”);
$connection->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_异常);
您将在您的案例中看到一个错误(或者其他错误)

致命错误:未捕获PDOException:SQLSTATE[HY000]:常规错误:1364字段“日期”中没有默认值

如果允许
日期
字段为空或始终插入,将插入有效的日期记录

刚刚测试过

还有!确保已发送
$\u POST['name']
$\u POST['textmessage']


正如我所看到的,在表单中,您有
name=“message”
,但试图获取
textmessage
。请先修复所有这些错误。使用调试器和浏览器的检查器确保所有必需的数据都到达脚本。

请不要添加不适当的标记,使您的问题看起来脱离主题spammy
PDOStatement::bindParam(mixed$parameter,mixed&$variable,int$data_type=PDO::PARAM_STR,int$length=?,mixed$driver_options=?)
您正在尝试吗(key,value,key-value)分别绑定每个参数。它现在就可以了。请检查我对另一个clueb的编辑,因为您现在没有在插入查询中添加它,也没有设置字段的默认值