PDO插入错误无错误显示
PDO insert error without error display
嗨,
这个 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 不行,请帮助我。
尝试跟踪执行错误:
$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();
}
好的,我正在回答这个问题。
您的列和绑定不匹配。
您有 lenght
和 length
它们应该都读作 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
旁注:错误报告只能在试运行中进行,绝不能在生产中进行。
嗨, 这个 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 不行,请帮助我。
尝试跟踪执行错误:
$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();
}
好的,我正在回答这个问题。
您的列和绑定不匹配。
您有 lenght
和 length
它们应该都读作 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
旁注:错误报告只能在试运行中进行,绝不能在生产中进行。