我在使用PDO向数据库添加新数据时遇到问题。 我有一个表格,其中有几个字段。如果我将字段留空,则会弹出错误消息。 在服务器上更新mysql时发生了问题。在另一台服务器和本地上,问题不会出现。 在字段中将所有形式的服务器设置为默认值0将非常困难。
数据库版本:10.3.13-MariaDB-100.cba.1-log-Debian测试
请检查您是否未填写所有字段并生成错误。
当我留空输入然后生成错误时可以吗?
PHP代码:
$config = require_once 'config.php';
try {
$db = new PDO(
"mysql:host={$config['host']};dbname={$config['database']};charset=utf8",
$config['user'],$config['password'],
[PDO::ATTR_EMULATE_PREPARES=>false,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
}
catch(PDOException $error)
{
echo $error->getMessage();
exit('Database error!');
}
if (isset($_POST['dodaj'])) {
$pole1 = $_POST['pole1'];
$pole2 = $_POST['pole2'];
$pole3 = $_POST['pole3'];
$pole4 = $_POST['pole4'];
$query = $db->prepare("INSERT into pola VALUES (:pole1, :pole2, :pole3, :pole4)");
$query->bindValue(':pole1', $pole1, PDO::PARAM_INT);
$query->bindValue(':pole2', $pole2, PDO::PARAM_INT);
$query->bindValue(':pole3', $pole3, PDO::PARAM_INT);
$query->bindValue(':pole4', $pole4, PDO::PARAM_INT);
$query->execute();
}
HTML代码:
<form method="post" action="#">
<input type="text" id="pole1" name="pole1">
<input type="text" id="pole2" name="pole2">
<input type="text" id="pole3" name="pole3">
<input type="text" id="pole4" name="pole4">
<input type="submit" name="dodaj" value="dodaj">
</form>
数据库:
pole1 | pole2 | pole3 |极点
致命错误:未捕获的PDOException:SQLSTATE [22007]:无效的日期时间格式:1366不正确的整数值:** **第1行的列
********
。pola
。pole3
**********************新1.php:18堆栈跟踪:#0 ***************** ***新的1.php(18):PDOStatement-> execute()#1 {main}抛出************************** ****第18行的新1.php