PDO插入错误,没有错误显示

时间:2015-02-16 16:34:06

标签: php jquery mysql pdo

HY, 我在这个pdo插页中遇到了一些错误:

            $query = $pdo->prepare("INSERT INTO matches (teamA, teamB, start, lenght) VALUES (:teamA, :teamB, :start, :length)");
            $query->execute(array(
                ':teamA' => $_GET['teamA'],
                ':teamB' => $_GET['teamB'],
                ':start' => $_GET['start'],
                ':lenght' => $_GET['length']
            ));

pdo没有输入任何错误,但没有插入我的数据库这一行

我用这种方式用jQuery调用php文件:

$('.load').load('request.php?type=save&table=matches&teamA=' + homeTeam.children("select").val() + '&teamB=' + awayTeam.children("select").val() + '&start=' + start.children("select").val() + '&length=' + length.children("select").val());

jQuery工作正常,我测试了它,但pdo没有,plesa帮助我。

2 个答案:

答案 0 :(得分:2)

好的,我正在为此做出回答。

您的列和绑定不匹配。

您有lenghtlength

他们都应该读作length,它被拼错了。

$query = $pdo->prepare("INSERT INTO matches (teamA, teamB, start, length)  
 VALUES (:teamA, :teamB, :start, :length)");

    $query->execute(array(
        ':teamA' => $_GET['teamA'],
        ':teamB' => $_GET['teamB'],
        ':start' => $_GET['start'],
        ':length' => $_GET['length']
    ));

检查错误后会发出错误信号

在打开连接后立即添加以下内容:

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

error reporting添加到文件的顶部,这有助于查找错误。

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

旁注:错误报告应仅在暂存时完成,而不是生产。

答案 1 :(得分:0)

尝试跟踪执行错误:

$query = $pdo->prepare("INSERT INTO matches (teamA, teamB, start, lenght) VALUES (:teamA, :teamB, :start, :length)");

        if ($query->execute(array(

                    ':teamA' => $_GET['teamA'],
                    ':teamB' => $_GET['teamB'],
                    ':start' => $_GET['start'],
                    ':lenght' => $_GET['length']
                )) ) {
    echo 'Query executed succsessfully!';
    } else {
        echo 'Failed to execute query! Error: '.$query->errorInfo();
}