1

我正在尝试使用 PDO 将 int 插入数据库,但由于某种原因,它一直因错误而失败:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 2031 ' in C:\vhosts\jpl\admin\add_project.php:119 Stack trace: #0 C:\vhosts\jpl\admin\add_project.php(119): PDOStatement->execute() #1 C:\vhosts\jpl\admin.php(25): include('C:\vhosts\jpl\a...') #2 {main} thrown in C:\vhosts\jpl\admin\add_project.php on line 119

这是代码:

        $projectAdd = $database->prepare("INSERT INTO projects (title, short_description, long_description, image_location, display)VALUES ('test', 'test', 'test', ?, :integer)");
        $projectAdd->bindParam(1, $test);
        $projectAdd->bindParam(':integer', $value, PDO::PARAM_INT);

        $test = "testbind";
        $value = 1;
        $projectAdd->execute();

即使我使用直接 int 它仍然失败。IE 0 而不是绑定。

*编辑在问题上犯了一个错误。

4

1 回答 1

4

Try:

$projectAdd = $database->prepare("INSERT INTO projects (title, short_description, long_description, image_location, display)VALUES ('test', 'test', 'test', ?, ?)");
//The variables need to be defined before binding.
$test = "testbind"; 
$testint = 1;
$projectAdd->bindParam(1, $test);
$projectAdd->bindParam(2, $testint); //change '1' to '2'
于 2012-11-14T21:24:00.603 回答