【发布时间】:2012-05-05 08:59:37
【问题描述】:
我在主机 gator 上有一个站点。我可以连接我的 pdo 语句,但插入语句似乎不起作用。现在我已经定义了这些值,但我计划使用从前一页表单中的 $_POST 中提取的变量。
<?php
/*** mysql hostname ***/
$hostname = 'xxx.xxx.xxx.xxx';
/*** mysql username ***/
$username = 'pressgym_admin';
/*** mysql password ***/
$password = '*******'; <-started out on purpose
try {
$dbh = new PDO("mysql:host=$hostname;dbname=pressgym_press", $username, $password);
/*** echo a message saying we have connected ***/
$qry = $dbh->prepare('INSERT INTO contact (Name, Email Address, Message, Date) VALUES (?, ?, ?, ?');
$qry->execute(array('Brandon', 'Brandon.braner@gmail.com', 'test message', '3.12.12'));
echo 'entry succesfull';
}
catch(PDOException $e)
{
echo $e->getMessage();
}
?>
describe contact;
Name varchar(255) NO PRI
EmailAddress varchar(255) NO
Message longtext NO
Date varchar(255) YES
【问题讨论】:
-
使用
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);启用 PDO 异常 -
我会把主机名改成假的。如果那是一个真正的 IP,那你只是在要求滥用......
-
由于某种原因添加为评论的唯一正确答案。
-
@MikeB 的评论解决了我遇到的问题。默认情况下禁用异常似乎是一个糟糕的设计决定。它创建了一个场景,其中 PDO 是神秘的妻子(“不,它很好。”)而 PHP 是健忘的丈夫(“很好?好吧!继续下一件事......”)。