php中execute()函数的作用是什么?

时间:2019-05-26 20:50:16

标签: php pdo prepared-statement

我有一个带有公式编写器的html网站,可对php脚本进行操作。 我想做的是将公式化器中的数据写入本地主机上的mySQL数据库中。

我知道数据库是可访问的,并且数据正确地提供给了php脚本(我正在使用MAMP服务器来存储数据库和文件)。 据我所知,准备陈述是正确的。 execute语句中的“ id”是自动递增的,因此我将其设置为NULL。

$ link是db_connection.php中的db-access

<?php
    include("db_connection.php");
?>

<html>
    <header>
        <meta charset="utf-8">
        <title>Stackoverflow Code</title>
    </header>
    <body>
        <?php
            $name           = $_POST['name'];
            $timeUnits      = $_POST['timeUnits'];
            $description    = $_POST['description'];

            $eintrag = $link->prepare("INSERT INTO `projekt`(`id`,`time-units`, `beschreibung`, `name`) VALUES (?,?,?,?)");
            echo "It's working fine till this line";
            $eintrag->execute([NULL, $timeUnits, $description, $name]);
        ?>
    </body>
</html>

我希望它可以将数据写入数据库,但是我得到的是内部服务器错误(错误500),该错误立即从浏览器控制台和空白网站中消失了。

1 个答案:

答案 0 :(得分:-1)

您可以在Web服务器上查看错误日志以查看mysql错误,或将执行放在try catch块中以捕获异常。

错误可能是因为说id = null,因为您不能使用null主键 您需要一起忽略所有ID,它会自动递增。

$eintrag = $link->prepare("INSERT INTO `projekt`(`time-units`, `beschreibung`, `name`) VALUES (?,?,?)");
$eintrag->execute([$timeUnits, $description, $name]);

Execute执行查询,将参数放在“?”是然后运行它。将链接到文档,但没有数据库连接文件,我不知道您使用的是mysqli还是pdo。