2

ホストゲーターにサイトがあります。pdo ステートメントに接続できますが、挿入のステートメントが機能していないようです。今、値を定義しましたが、前のページのフォームから $_POST から取得した variabled を使用する予定です。

<?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 
4

2 に答える 2

5

コマンドの SQL 構文にprepareエラーが含まれています:

qry = $dbh->prepare('INSERT INTO contact (Name, Email Address, Message, Date) VALUES (?, ?, ?), ?');

する必要があります

qry = $dbh->prepare('INSERT INTO contact (Name, `Email Address`, Message, Date) VALUES (?, ?, ?, ?)');
于 2012-04-24T17:18:09.243 に答える
2

構文エラーがあります。次の行

$qry = $dbh->prepare('INSERT INTO contact (Name, Email Address, Message, Date) VALUES(?, ?, ?), ?');

する必要があります

$qry = $dbh->prepare('INSERT INTO contact (Name, Email Address, Message, Date) VALUES (?, ?, ?, ?)');

アップデート:

列名のメールアドレスにはスペースが含まれており、次のような適切な引用識別子を使用してエスケープします

INSERT INTO contact (Name, `Email Address`, Message, Date) VALUES (?, ?, ?, ?)'
于 2012-04-24T17:18:57.463 に答える