Hier habe ich diese Abfrage, Wenn ich den Wert von% f und% d als 1 und 1 ersetzen, wird es in meinem phpmyadmin Panel funktionieren, aber ich führe diese Abfrage über wpdb get_results mit Bereite es vor, es funktioniert nicht. Alle Werte werden korrekt übergeben, aber ich bekomme immer noch null als Ausgabe.WPDB funktioniert nicht, SQL-Abfrage funktioniert in phpmyadmin
$f = $wc * (($ul + 100)/100);
$capabilities = $wpdb->prefix."capabilities";
$sql = "
SELECT u.*, up.*, up.pid, (up.ros - up.soh)/(%f) as qty_suggested
FROM $wpdb->users u
INNER JOIN wp_deals_users_products up
ON u.ID = up.user_id
INNER JOIN $wpdb->usermeta um
ON u.ID = um.user_id
WHERE up.pid = %d
AND um.meta_key = '$capabilities'
AND um.meta_value LIKE '%subscriber%'
";
//echo $sql; This echoes the sql which I tested in phpmyadmin sql query runner
$results = $wpdb->get_results(
$wpdb->prepare(
$sql,
$f,
$pid
)
);
echo json_encode($results);
Wenn ich vorbereiten entfernen und Lauf Abfrage direkt oder mit fest codierten 1, da beide Werte für% d und% f ich immer noch null erhalten. Gleiche Abfrage in phpMyAdmin SQL Abschnitt
EDIT funktionieren:
Dies ist die letzte Abfrage, die Funktion in wpdb vorbereiten geht:
SELECT u.*, up.*, up.pid, (up.ros - up.soh)/(%f) as qty_suggested
FROM wp_users u
INNER JOIN wp_deals_users_products up
ON u.ID = up.user_id
INNER JOIN wp_usermeta um
ON u.ID = um.user_id
WHERE up.pid = %d
AND um.meta_key = 'wp_capabilities'
AND um.meta_value LIKE '%subscriber%'
danke, es hat funktioniert ... Ich vermutete für einen sehr kurzen Moment, dass es% in LIKE Aussage sein könnte. Ich bekomme jetzt Ergebnisse. – Waleed