【问题标题】:bash script to run sql query on wordpress db在 wordpress db 上运行 sql 查询的 bash 脚本
【发布时间】:2014-06-16 14:23:32
【问题描述】:

我遇到了一个奇怪的问题。这是一个 3 步方案。

  1. 我有一个代码,可以从给定的 Youtube URL 从 Youtube 下载我的 ftp 目录中的视频

  2. 所以我有一个代码,它向 bash 脚本发出后台命令,该脚本在后台(在 ftp 目录上)下载大量视频

  3. 现在,当下载完成时,bash 脚本将调用一个 PHP 文件来更新 WordPress 中的条目。

问题 视频在我的 ftp 目录上下载良好。并且 bash 脚本也可以正常工作,直到调用我的 PHP 文件来更新数据库条目。

这是我的 bash 脚本代码

#!/bin/bash
wget -o $1 --output-document=$2 $3 &
wait
/usr/bin/php ../cron/vids_pending_download.php $4
exit

此脚本运行良好,并调用包含此代码的 PHP 文件。

require('../../wp-config.php');
require('../inc/inc_config.php');

$vid_key = trim($argv[1]);
#$vid_key = '123_video_key';

$sql_get_vids = "SELECT vid_id, vid_name, file_size, vid_usr FROM " . $wpdb->prefix . "video_table WHERE vid_name = '".$vid_key."' ";
$vid_info = $wpdb->get_row($sql_get_vids);
if ($vid_info != null) {
echo 'video found';
} else {
echo 'video not found';
}

现在的问题是,如果我为我的 sql 提供一个固定的 $vid_key,它就可以完美运行。但是,如果我从 bash 的数组中获取 $vid_key,它会带来空的结果集。但是,如果我打印 sql 并粘贴到 phpMyAdmin 中,它会带来很好的记录,这意味着记录就在那里。

寻求帮助。谢谢大家。

【问题讨论】:

  • 所以 bash 将 $4 传递给 php - 这是从哪里来的?您是否尝试将set -x 添加到 bash 脚本以查看它实际执行的内容?
  • 好的。我不知道那 4 美元以及为什么它在那里。 bash 脚本是由我以前正在度假的开发人员创建的。
  • 我认为您在谈论数组中的两个值。打印时,数组的值 1 显示正在调用的 php 文件名。和值 2 鞋 vid_key 变量的值。
  • $4 是传递给 bash 脚本的第 4 个参数,在脚本(vid_key)中变为$arvg[1]。我的问题是您是否检查过 bash 脚本实际上传递了正确的值,或者通过 bash 中的 echo/set -x 和/或 php 中的 echo?看起来 bash 脚本被错误地调用了。那叫什么?

标签: php wordpress bash


【解决方案1】:

问题解决了。原因是 bash 脚本来得太快作为回报并寻找下一个文件。当它这样做时,插入到 db 中的实际代码没有被执行。因此,返回文件的记录不可用。

这个问题发生在将命令提交到 bash 文件的实际文件中。

再次感谢大家的帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    • 2016-03-13
    • 1970-01-01
    • 2017-01-10
    • 2020-06-29
    相关资源
    最近更新 更多