MySQL查询中的PHP功能?

Mat*_*iby 5 php mysql

我有这个查询

$query = "INSERT INTO $new_db.wp_users (user_login, user_pass, user_nicename)
select user_email, md5(user_password), user_name from $source_db.users";
Run Code Online (Sandbox Code Playgroud)

我有这个功能

function wp_hash_password($password) {
    require_once('class-phpass.php');
    // By default, use the portable hash from phpass
    $wp_hasher = new PasswordHash(8, TRUE);
    return $wp_hasher->HashPassword($password);
}
Run Code Online (Sandbox Code Playgroud)

我需要查询是这样的

$query = "INSERT INTO $new_db.wp_users (user_login, user_pass, user_nicename)
select user_email, ". wp_hash_password(user_password) .", user_name from $source_db.users";
Run Code Online (Sandbox Code Playgroud)

但这失败了...任何想法

ben*_*siu 5

你有两个选择:

  • 在 SQL/PL 中重写 wp_hash_password 函数并在查询中使用它
  • 将结果加载到 PHP - 修改它们并将它们发送回如下代码:
$results = mysql_query ( "SELECT user_login, user_pass, user_nicename FROM $source_db.users" );

而 ($row = mysql_fetch_assoc($results)) {
  $sql = "$query = "INSERT INTO $new_db.wp_users (user_login, user_pass, user_nicename) VALUES (";
  $sql .= $row['user_login'] 。',';
  $sql .= wp_hash_password($row['user_password']) 。',';
  $sql .= $row['user_nicename;
  $sql .= ') ';
  mysql_query ( $sql );
}