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帮助我。
答案 0 :(得分:2)
好的,我正在为此做出回答。
您的列和绑定不匹配。
您有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
旁注:错误报告应仅在暂存时完成,而不是生产。
答案 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();
}