我不知道如何在MySQL查询中正确连接PHP变量。
$convert_class_id 和$convert_char_id 正在保存数值。
当我尝试激活插件时,出现了一个错误:
分析错误:语法错误,意外的“=”,应为“,”或“)”
$skill_select = $wpdb->get_results(
$wpdb->prepare("
SELECT skill_name, char_id, um_id, c.class_id
FROM `wp_ml_skill_class` sc
JOIN `wp_ml_skill` s ON (s.skill_id = sc.skill_id)
JOIN `wp_ml_character` c
WHERE c.class_id = " . $convert_class_id . " " AND c.char_id = " " . $convert_char_id . "
"));
提前谢谢。
最合适的回答,由SO网友:nmr 整理而成
在SQL语句中,使用占位符而不是变量:%s
(字符串)或%d
(编号)。的第二个参数prepare()
是要替换为占位符的变量数组。
$skill_select = $wpdb->get_results(
$wpdb->prepare("
SELECT skill_name, char_id, um_id, c.class_id
FROM `wp_ml_skill_class` sc
JOIN `wp_ml_skill` s ON (s.skill_id = sc.skill_id)
JOIN `wp_ml_character` c
WHERE c.class_id = %d AND c.char_id = %d",
[$convert_class_id, $convert_char_id]));