0

只是一个关于执行 PDO 语句的快速问题。

以下是我的查询

$setDate = "INSERT INTO wl_datecheck (inputdate) VALUES (UNIX_TIMESTAMP(STR_TO_DATE($reportDate, '%Y%m%d')))";

现在,我正在做的是将查询和连接设置为变量 $data,如下所示:

$data = $conn->query($setDate);

我需要知道的是 ^^ 单独执行还是我需要包含

$data->execute();

问的原因是我似乎从 INSERT 语句中得到了重复的内容&我不知道为什么

4

2 回答 2

3

你确实做了两次,你要么使用查询,要么执行。

从文档:

PDO::query() 在单个函数调用中执行 SQL 语句,将语句返回的结果集(如果有)作为 PDOStatement 对象返回。

对于需要多次发出的查询,如果您使用 PDO::prepare() 准备 PDOStatement 对象并通过多次调用 PDOStatement::execute() 发出语句,您将获得更好的性能。

http://us2.php.net/pdo.query

于 2013-11-01T13:56:34.670 回答
-1

您也可以使用简单地检查插入语句的结果rowCount()

$data = $conn->query($setDate);
if($data->rowCount() >= 1){
 //echo "Inserted";
}else{
 //echo "An error occurred while inserting";
 //$arr = $data->errorInfo();
 //print_r($arr);
}

而且不需要打电话execute()

于 2013-11-01T14:10:47.033 回答