- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我开始将我所有的 mysql/php 工作数据库查询等切换到 PDO。我想知道是否可以以某种方式缩短以下方法。这个特殊的例子是使用一个大的注册表单并将结果插入到数据库中。我觉得这比必要的代码多了很多……有没有更短的方法将其插入数据库?
$query = $affiliates->prepare('INSERT INTO affiliates (afid, afTitle, afbio, afLink, afEmail, afAddress, afCity, afState, afZip, afphone, affacebook, aflinkedin, aftwitter, afPassword, afLon, afType, aftime, afApproved) VALUES (?, ?, ? , ? , ?, ? ,? ,? ,? ,? ,? ,? ,? ,? ,? ,? ,?, ?)');
echo "prepare successfull";
$query-> execute(array('',$afTitle, $afBio, $afLink, $afEmail, $afAddress, $afCity, $afState, $afZip, $afPhone, $afFacebook, $afLinkedIn, $afTwitter, $afPassword, '', $afType, $date, $afApproved))or die(print_r($affiliates->errorInfo(), true));
echo "Insert worked!";
正如我所说,边学边做,我为任何糟糕的结构道歉。这也能防止 sql 注入(inject)吗?
谢谢!
最佳答案
一个选项可能是将这些列名称和值放入一个数组中。然后,您可以只使用数组,而不是多次列出所有变量/列。例如,您可以将代码更改为如下所示:
$inserting = array();
foreach(array('afTitle','afbio','afLink','afEmail','afAddress','afCity','afState','afZip','afphone','affacebook','aflinkedin','aftwitter','afPassword','afType','aftime','afApproved') as $i) $inserting[$i] = ${$i};
$sth = $dbh->prepare('INSERT INTO affiliates ('.implode(',', array_keys($inserting)).') VALUES ('.str_pad('', count($inserting)*2-1, '?,').')');
$sth->execute(array_values($inserting)) or die(print_r($sth->errorInfo(), true));
如果您喜欢这种方法,您可以考虑以不同的方式填充数组,并可能放弃创建如此多的独立变量。
关于php - 运行长 PDO 插入语句的更快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11197254/
我写了一个脚本,它在二进制文件和脚本文件中存储数字签名。这个问题仅与脚本有关:目前,所有这些签名都存储在一行(注释)中,例如: #!/usr/bin/perl print "Hello" print
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
这个问题在这里已经有了答案: Applying an ellipsis to multiline text [duplicate] (23 个回答) 关闭 7 年前。
我使用 Visual Studio Code 已有一段时间了。从昨天开始,代码格式没有像我预期的那样工作,但我没有更改任何配置。 这是没有格式化的文件 格式化后: 这些是我修改的设置 我可以做些什么来
我是一名优秀的程序员,十分优秀!