1

わかりました...別のWPの問題が発生しました。

私のWPテーマには、特別なことがいくつかあります。たとえば、私はいくつかのものを含むテーブルを持っています。

このテーブルに挿入(この場合は更新)するときは、次のコードのように$wpdbを使用します。

$sql = $wpdb->prepare("UPDATE $table_name SET
    `title` = '$title',
    `text` = '$text',
    `image` = '$image',
    `thumbnail` = '$thumb',
    `show` = $sql_show,
    `order` = $order,
    `language` = '$language',
    `type` = '$type'

    WHERE `id` = $id 
;");
$wpdb->query($sql);

私もこれを試しました:

$sql = $wpdb->prepare("UPDATE $table_name SET
    `title` = %s,
    `text` = %s',
    `image` = %s,
    `thumbnail` = %s,
    `show` = %d,
    `order` = %d,
    `language` = %s,
    `type` = %s                
    WHERE `id` = $id 
;", $title, $text, $image, $thumb, $show, $order, $language, $type);

$ textに「%」が含まれている場合を除いて、どちらも機能します。これが含まれている場合、$sqlは空白です。当然のことながら、すべての「%」を「パーセント」に変更できますが、その解像度は受け入れられません。;)

4

1 に答える 1

2

%パーセントでエスケープする必要があるため、次のように1パーセントを2パーセントに置き換えます$text$text = str_replace('%', '%%', $text)

于 2012-11-16T15:54:09.503 に答える