猿问

如何在 PHP 中操作文本以具有单引号和昏迷

我的问题一定很简单,但我不知道该怎么做:

$input = "Hello, Beautiful, World";

$expected_output = "'Hello','Beautiful','World'";

我知道我可以通过以下方式拆分文本 explode(" ", $input);

但是如何加入 ', ?

为什么我需要它?我需要用它来准备 MySQL 查询,例如

SELECT value FROM tab_settings WHERE name IN ('Hello', 'Beautiful', 'World')

来自 $input


30秒到达战场
浏览 184回答 3
3回答

忽然笑

您可以使用以下代码段相同echo "'".implode("','",explode(", ", $input))."'";

RISEBY

您可以使用 REGEXPSELECT * FROM author WHERE aut_name REGEXP 'hello|benny|meny';

阿波罗的战车

这可能会回答您的具体问题:<?php$subject = "Hello, Beautiful, World";preg_match_all('/(\w+)/', $subject, $words);$words = $words[1];$tokens = [];array_walk($words, function($word) use (&$tokens) {&nbsp; &nbsp; $tokens[] = "'" . $word . "'";});$tokens = implode(',', $tokens);var_dump($tokens);输出显然是:string(27) "'你好','美丽','世界'"但请允许我们在这里提供一个提示:您以这种基于字符串的方式构造 sql 查询所遵循的策略最终是一个非常糟糕的主意,因为它使您的代码容易受到通常称为“sql 注入攻击”的攻击。你想阻止这种情况。请开始阅读使用“准备语句”和“参数绑定”的组合来防止此类漏洞的优点。
随时随地看视频慕课网APP
我要回答