execute(-6ren">
gpt4 book ai didi

php - 如何在 PHP 准备语句中将数据插入数组?

转载 作者:行者123 更新时间:2023-11-29 17:33:40 25 4
gpt4 key购买 nike

我尝试在使用准备语句 pdo 之前将数据插入到数组中。

这是我所做的:

$stmt = $pdo->prepare("SELECT * FROM settings"); 
$stmt->execute(array());
$row = $stmt->fetch(PDO::FETCH_ASSOC);
htmlspecialchars($row['site_name']);
htmlspecialchars($row['site_desc']);
htmlspecialchars($row['site_url']);
unset($stmt);

乌萨克:

$row['site_name'];

它工作得很好,但我觉得我错过了一件重要的事情。

这是我的问题:我是否必须声明 $stmt->execute(array()); 中的所有值像这样:$stmt->execute(array(':site_name'=>$site_name, ':site_name'=>$site_name,)); 在使用之前?

如何做到这一点?

 $a['site_name'] = htmlspecialchars($row['site_name']);
$a['site_desc'] = htmlspecialchars($row['site_desc']);
$a['site_url'] = htmlspecialchars($row['site_url']);

乌萨克:

$a['site_name'];

我观看了视频和教程,但无法使第二个示例起作用。

最佳答案

由于没有使用变量(通常是用户输入),因此完全不需要使用准备好的语句,因此您可以简单地使用常规查询方法。

$a=array();

$sql = 'select * from `settings`;';
$res = $pdo->query( $sql );
if( $res ){
while( $rs=$pdo->fetch( PDO::FETCH_OBJ ) ){
$a['site_name']=$rs->site_name;
$a['site_desc']=$rs->site_desc;
$a['site_url']=$rs->site_url;
}
}

但是,如果您有一些额外的查询参数(通常是 where 子句),您可能需要使用 prepared 语句,您可以在其中定义一个占位符,然后为其分配一个值以在execute方法中使用

$sql='select * from `settings` where `site_name`=:site_name;';
$params=array(':site_name'=>'example.com');
$stmt=$pdo->prepare( $sql );
if( $stmt ){
$res=$pdo->execute( $params );
if( $res ){
while( $rs=$stmt->fetch( PDO::FETCH_OBJ ) ){
$a['site_name']=$rs->site_name;
$a['site_desc']=$rs->site_desc;
$a['site_url']=$rs->site_url;
}
}
}

关于php - 如何在 PHP 准备语句中将数据插入数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50461591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com