我是新的PDO,我试图插入数据到表中。PHP PDO插入数据
这是我的表:
CREATE TABLE `Message` (
`ID` INT(8) NOT NULL AUTO_INCREMENT ,
`DateTime` DATETIME NOT NULL ,
`SmsSid` VARCHAR(34) NOT NULL ,
`AccountSid` VARCHAR(34) NOT NULL ,
`From` VARCHAR(12) NOT NULL ,
`To` VARCHAR(12) NOT NULL ,
`Body` VARCHAR(160) NOT NULL ,
`FromCity` VARCHAR(50) NULL ,
`FromState` VARCHAR(50) NULL ,
`FromZip` VARCHAR(50) NULL ,
`FromCountry` VARCHAR(50) NULL ,
`ToCity` VARCHAR(50) NULL ,
`ToState` VARCHAR(50) NULL ,
`ToZip` VARCHAR(50) NULL ,
`ToCountry` VARCHAR(50) NULL ,
`ConversationNumber` INT(4) NOT NULL ,
PRIMARY KEY ( `ID`)
) ENGINE = MYISAM
这就是我想要插入到表中的PHP代码。什么是做这个插入语句的正确方法? prepare()query()exec()?
我能够通过使用这个类似的代码插入到一个不太复杂的表中,但不是上面这个。我不确定究竟是什么导致了问题,语法,列类型,自动增量,日期时间?有没有这张表,我不处理正确的插入查询?另外,我是否正确处理异常/错误处理以查看我需要帮助调试的正确错误消息?
<?php
try
{
$connectionString = new PDO("mysql:host=xxxx;dbname=xxxx;","xxxx","xxxx");
}
catch(PDOException $e)
{
echo 'Connection failed'.$e->getMessage();
}
$DateTime = "NOW()";
$SmsSid = "abcdef";
$AccountSid = "abcdef";
$FromWho = "abcdef";
$To = "abcdef";
$Body = "abcdef";
$FromCity = "abcdef";
$FromState = "abcdef";
$FromZip = "abcdef";
$FromCountry = "abcdef";
$ToCity = "abcdef";
$ToState = "abcdef";
$ToZip = "abcdef";
$ToCountry = "abcdef";
$ConversationNumber = "abcdef";
try
{
$executeQuery = $connectionString->prepare("INSERT INTO Message (SmsSid,AccountSid,`From`,To,Body,FromCity,FromState,FromZip,FromCountry,ToCity,ToState,ToZip,ToCountry,ConversationNumber) VALUES (:SmsSid,:AccountSid,:FromWho,:To,:Body,:FromCity,:FromState,:FromZip,:FromCountry,:ToCity,:ToState,:ToZip,:ToCountry,:ConversationNumber)");
$executeQuery->execute(array(':SmsSid'=>$SmsSid,':AccountSid'=>$AccountSid,':FromWho'=>$FromWho,':To'=>$To,':Body'=>$Body,':FromCity'=>$FromCity,':FromState'=>$FromState,':FromZip'=>$FromZip,':FromCountry'=>$FromCountry,':ToCity'=>$ToCity,':ToState'=>$ToState,':ToZip'=>$ToZip,':ToCountry'=>$ToCountry,':ConversationNumber'=>$ConversationNumber));
}
catch(PDOException $e)
{
echo 'Query failed'.$e->getMessage();
}
$connectionString = null;
?>
您是否收到任何错误?顺便说一句,我假设所有这些占位符都是变量,为什么你不附加一个$给他们? 此外,如果您知道占位符(列字段)的顺序,那么您可以使用问号语法,而不是混乱。 – silkfire 2013-02-24 23:51:47
请不要包含“非常感谢帮助。”在你的问题。这是无用的噪音。 – Doorknob 2013-02-24 23:52:23
@Doorknob在我的回答经验中,很少有人赞赏 – 2013-02-24 23:54:22