为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
30秒到达战场 2021-12-03 15:38:57
我的问题一定很简单,但我不知道该怎么做:$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 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

您可以使用以下代码段相同

echo "'".implode("','",explode(", ", $input))."'";



查看完整回答
反对 回复 2021-12-03
?
RISEBY

TA贡献1856条经验 获得超5个赞

您可以使用 REGEXP

SELECT * FROM author WHERE aut_name REGEXP 'hello|benny|meny';


查看完整回答
反对 回复 2021-12-03
?
阿波罗的战车

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 注入攻击”的攻击。你想阻止这种情况。


请开始阅读使用“准备语句”和“参数绑定”的组合来防止此类漏洞的优点。


查看完整回答
反对 回复 2021-12-03
  • 3 回答
  • 0 关注
  • 183 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信