PDO插入SQL没有执行没有错误

时间:2014-11-27 10:41:01

标签: php mysql sql pdo

我正在运行此代码:

$stmt = $pdo_conn->prepare("INSERT into ticket_updates (ticketnumber, notes, datetime, contact_name, contact_email, customer, internal_message, type) values (:ticketnumber, :notes, :datetime, :contact_name, :contact_email, :customer, :internal_message, :type) ");
            $stmt->execute(array(':ticketnumber' => $ticketnumber, 
            ':notes' => $TicketSummary, 
            ':datetime' => date("Y-m-d H:i:s"),  
            ':contact_name' => $Ticket_ContactName, 
            ':contact_email' => $Ticket_ContactEmail, 
            ':customer' => 'Y', 
            ':internal_message' => 'N', 
            ':type' => 'update'));

所有表格列都存在并且是正确的,但它没有超越这一点

我尝试了var_dump($stmt);但却什么都没得到

2 个答案:

答案 0 :(得分:1)

使用以下方法验证连接是否正确建立

try
{
    $dbh = new PDO("mysql:host=xxxxxxxxxxxx;dbname=streaming", "xxxx", "xxxx");
}
catch (Exception $e)
{
    throw new Exception( 'Something really gone wrong', 0, $e);
}

您执行时也可以输出错误

$sth->execute() or die(print_r($sth->errorInfo(), true));

最后,您可能还需要在页面上启用错误,因此请将其放在页面标题中,如果是单页则放在最顶层:

error_reporting(-1);

减1意味着它将打印所有错误。

在您发现错误之前,很难进一步诊断问题,但问题可能是由于与数据库的连接或您如何形成参数数组。

答案 1 :(得分:0)

向您的pdo添加错误报告:

$pdo_conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);

执行insert命令之前。

然后在insert命令中输出错误

$stmt->execute(array(':ticketnumber' => $ticketnumber, ':notes' => $TicketSummary, ':datetime' => date("Y-m-d H:i:s"),
':contact_name' => $Ticket_ContactName, ':contact_email' => $Ticket_ContactEmail, ':customer' => 'Y', ':internal_message' => 'N', ':type' => 'update')) or die("ERROR: " . implode(":", $pdo_conn->errorInfo()))

这可以告诉你什么是错的,以及为什么事情没有按预期执行。