gpt4 book ai didi

php - 用变量替换字符串时 SQL 请求不返回任何内容

转载 作者:太空宇宙 更新时间:2023-11-03 11:52:04 24 4
gpt4 key购买 nike

我正在尝试设置一个简单的功能来在重命名主文件夹时更新子文件夹的路径。

这是我的代码:

case 'rename':

$dirpath = rtrim(preg_replace('~/+~', '/', (str_replace('\\', '/', $_POST['old-dirpath']))), '/');
$new_dirpath = rtrim(preg_replace('~/+~', '/', (str_replace('\\', '/', $_POST['new-dirpath']))), '/');

$sql = "
UPDATE privatedir SET
dirpath = '{$new_dirpath}'
WHERE dirpath = '{$dirpath}'
";

$db->execute($sql);


$rs = $db->query("SELECT * FROM privatedir WHERE `dirpath` LIKE '%.$dirpath.%'");

$folders = $db->fetchAll($rs);
print_r ($folders); print_r($dirpath); die;
foreach ($folders as $folder){
echo $folder['dirpath']; die;
$folder_new_dirpath = str_replace($dirpath, $new_dirpath, $folder['dirpath']);

$sql = "
UPDATE privatedir SET
dirpath = '{$new_dirpath}'
WHERE dirpath = '{$folder['dirpath']}'
";

$db->execute($sql);
}

我的问题涉及行 $rs = $db->query("SELECT * FROM privatedir WHEREdirpathLIKE '%.$dirpath.%'");即使我的数据库中有匹配的结果,它也不会返回任何东西,如果我 print_r $folders 它只会打印一个空数组。

但是,如果我直接将 .$dirpath. 替换为字符串(例如 C:/wamp/www/gg/ftp/repository/folder1 ),它将返回给我匹配的结果,print_r $folders 会给我打印相应的数组。

我做错了什么?

最佳答案

像thi一样把变量放在引号里

    $rs = $db->query("SELECT * FROM privatedir WHERE `dirpath` LIKE '%'".$dirpath."'%'");

关于php - 用变量替换字符串时 SQL 请求不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35004972/

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