Php 将PDO准备好的语句传递给变量
我正在使用一个准备好的语句将提交的信息上传到MYSQL数据库中。我想知道如何将我准备好的语句传递给一个单独的变量,这样我就可以发布上传内容的摘要。以下是代码:Php 将PDO准备好的语句传递给变量,php,pdo,Php,Pdo,我正在使用一个准备好的语句将提交的信息上传到MYSQL数据库中。我想知道如何将我准备好的语句传递给一个单独的变量,这样我就可以发布上传内容的摘要。以下是代码: $stmt = $dbh->prepare("INSERT INTO photos (Name, Type, Price, Description, Location, status, id) VALUES (:item_name, :item_type, :item_price, :item_description, :i
$stmt = $dbh->prepare("INSERT INTO photos (Name, Type, Price, Description, Location, status, id)
VALUES (:item_name, :item_type, :item_price, :item_description, :image_location, :status, :id)");
$stmt->bindValue(':item_name', $_POST['item_name']);
$stmt->bindValue(':item_type', $_POST['item_type']);
$stmt->bindValue(':item_price', $_POST['item_price']);
$stmt->bindValue(':item_description', $_POST['item_description']);
$stmt->bindValue(':image_location', 'images/'.$_FILES['file']['name']);
$stmt->bindValue(':status', 0);
$stmt->bindValue(':id', 0);
try{
$stmt->execute();
}catch(PDOException $e){
$errors[] = $item_name . "not saved in database.";
echo $e->getMessage();
我想我的问题是:PHP如何存储$stmt变量并执行它?是
$stmt->execute()
是否被视为数组?如果是,我如何访问每个准备好的值,以便发布每个值的摘要
谢谢大家! 您可以执行
$stmt->queryString
来获取语句中使用的SQL查询。
如果您想保存整个$stmt变量(我不明白为什么),您可以复制它。它是PDO语句的一个实例,因此存储它显然没有什么好处。您只能在执行()时传递数据,而不是使用
->bindParam()
:
通过这种方式,您将确切地知道将要发送哪些值。那么,您是否正在尝试查看诸如
$\u POST['item\u name'])之类的内容中的内容代码>,或者“放入变量”后的最终语句是什么样的?第一个很简单,第二个不可能(不进入mysql并查看最近针对您的数据库运行了哪些查询)。是的,我希望看到每个提交的$\u POST['item\u name']的具体实例,以便我可以对提交的信息进行总结。我能看到的唯一方法是创建单独的变量并再次提取$\u POST['item\u name']。我想使用$stmt变量中存储的内容。
$data = [
':item_name' => $_POST['item_name'],
':item_type' => $_POST['item_type'],
':item_price' => $_POST['item_price'],
':item_description' => $_POST['item_description'],
':image_location' => 'images/'.$_FILES['file']['name'],
':status' => 0,
':id' => 0,
];
$stmt->execute($data);