【发布时间】:2021-01-26 15:21:16
【问题描述】:
我有一个 PHP 代码,只是为了用 MariaDB 将值存储在一个简单的数据库中。
这是我的桌子:
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 中显示存储值时数据库中的时间戳。
printf('<h1> register: ' . $name . ' ALREADY IN TABLE </h1>');
现在我尝试的只是注册一个值,当它重复时,只显示表中已经存在的名称和警告。但我也想显示在我的表中生成的时间戳(并存储在 clumn“日期”中)。
我尝试创建第二个查询,但代码出现问题。
我想创建一个类似于这个的 printf:
printf('<h1> register: ' . $name . ' ALREADY IN TABLE </h1>' '<h1> timestamp : ' . $date . '</h1>);
不确定如何创建第二个数据库连接,以及如何使用 $name 变量重新创建新查询以获取重复变量的时间戳,并同时包含 $name 变量和 $date。
【问题讨论】: