我的问题一定很简单,但我不知道该怎么做:$input = "Hello, Beautiful, World";和$expected_output = "'Hello','Beautiful','World'";我知道我可以通过以下方式拆分文本 explode(" ", $input);但是如何加入 ', ?为什么我需要它?我需要用它来准备 MySQL 查询,例如SELECT value FROM tab_settings WHERE name IN ('Hello', 'Beautiful', 'World')来自 $input
3 回答
RISEBY
TA贡献1856条经验 获得超5个赞
您可以使用 REGEXP
SELECT * FROM author WHERE aut_name REGEXP 'hello|benny|meny';
阿波罗的战车
TA贡献1862条经验 获得超6个赞
这可能会回答您的具体问题:
<?php
$subject = "Hello, Beautiful, World";
preg_match_all('/(\w+)/', $subject, $words);
$words = $words[1];
$tokens = [];
array_walk($words, function($word) use (&$tokens) {
$tokens[] = "'" . $word . "'";
});
$tokens = implode(',', $tokens);
var_dump($tokens);
输出显然是:
string(27) "'你好','美丽','世界'"
但请允许我们在这里提供一个提示:
您以这种基于字符串的方式构造 sql 查询所遵循的策略最终是一个非常糟糕的主意,因为它使您的代码容易受到通常称为“sql 注入攻击”的攻击。你想阻止这种情况。
请开始阅读使用“准备语句”和“参数绑定”的组合来防止此类漏洞的优点。
- 3 回答
- 0 关注
- 183 浏览
添加回答
举报
0/150
提交
取消