使用 PDO (PHP) 在 mySQL 数据库中插入数字数据

Inserting numeric data in mySQL database using PDO (PHP)

我正在尝试使用 PHP 数据对象 (PDO) 在 MySQL 数据库中插入字符串(:make 和 :model)和数字(:year 和 :mileage)数据。问题是代码没有在数据库中插入数字数据(我猜原因是代码自动将 :year 和 :mileage 数据类型从 int 更改为 str。'year' 和 'mileage' DB table 中的列是 INT 类型。)如何更改我的代码以将 :year 和 :mileage 作为 INT 数据插入?

//PDO
<?php
$pdo = new PDO('mysql:host=localhost;port=8888;dbname=xxxx', 
   'xxx', 'xxx');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

 //SQL 
 $sql = "INSERT INTO autos (make, model, year, mileage)
                  VALUES (:make, :model, :year, :mileage)";
        $stmt = $pdo->prepare($sql);
        $stmt->execute(array(
            ':make' => $_POST['make'],
            ':model' => $_POST['model'],
            ':year' => $_POST['year'],
            ':mileage' => $_POST['mileage']));
        $_SESSION['success'] = 'Record Added';
        header( 'Location: index.php' ) ;
        return;
?>

<form method="post">
<p>Make:
<input type="text" name="make"></p>
<p>Model:
<input type="text" name="model"></p>
<p>Year:
<input type="number" name="year"></p>
<p>Mileage:
<input type="number" name="mileage"></p>
<p><input type="submit" value="Add New"/>

<!--SQL schema--!>
CREATE TABLE autos (
  autos_id INTEGER NOT NULL KEY AUTO_INCREMENT,
  make VARCHAR(255),
  model VARCHAR(255),
  year INTEGER,
  mileage INTEGER
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

这里的问题在PHP POST数据是字符串,所以你需要在插入之前转换它。

<--PDO code-->
<?php
$pdo = new PDO('mysql:host=localhost;port=8888;dbname=xxxx', 
   'xxx', 'xxx');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

 //SQL 
 $sql = "INSERT INTO cars (make, model, year, mileage)
                  VALUES (:make, :model, :year, :mileage)";
        $stmt = $pdo->prepare($sql);
        $stmt->execute(array(
            ':make' => $_POST['make'],
            ':model' => $_POST['model'],
            ':year' => intval($_POST['year']),
            ':mileage' => intval($_POST['mileage'])));
        $_SESSION['success'] = 'Record Added';
        header( 'Location: index.php' ) ;
        return;
?>

<form method="post">
<p>Make:
<input type="text" name="make"></p>
<p>Model:
<input type="text" name="model"></p>
<p>Year:
<input type="number" name="year"></p>
<p>Mileage:
<input type="number" name="mileage"></p>
<p><input type="submit" value="Add New"/>