Я пишу ajax-вызов WP для взаимодействия с внешней базой данных MySQL.Итак, у меня есть файл ajax.php, в котором определены все мои вызовы ajax, каждый из которых представлен отдельной функцией и соответствующим действием, например:
ajax.php
// MySQL ajax
add_action( 'wp_ajax_nopriv_mysql_ajax', 'mysql_ajax' );
add_action( 'wp_ajax_mysql_ajax', 'mysql_ajax' );
function mysql_ajax() {
//some code
} // End MySQL ajax
В моем вызове MySQL ajax я использую процедурный mysqli для связи с базой данных.У меня есть фрагменты кода, которые используются несколько раз, как этот:
if (mysqli_query($conn, $var['sql'])) {
echo "SQL: OK. Query:\n" . $var['sql'] . "\n\n";
} else {
echo "SQL: ERROR.\n" . mysqli_error($conn) . "\n\nQuery:\n" . $var['sql'] . "\n\n";
}
Я хочу переместить этот код в функцию и из функции вызова ajax, например:
MySQL.php
function mysql_insert_into_table($table){
if (mysqli_query($conn, $table['sql'])) {
echo "SQL: OK. Query:\n" . $table['sql'] . "\n\n";
} else {
echo "SQL: ERROR.\n" . mysqli_error($conn) . "Query:\n" . $table['sql'] . "\n\n";
}
}
Но когда я делаю это, запросы MySQL перестают работать, и я не вижу никаких ошибок SQL в консоли.Что я делаю не так?
Пока мне удалось переместить переменные, содержащие запросы SQL для создания моих таблиц, в отдельный файл .php и сделать их доступными внутри вызова ajax с помощью команды"global":
global $myTable;