Влияет ли метод SQL query () на Wordpress каким-либо образом? - PullRequest
0 голосов
/ 22 октября 2019

Редактировать: Я забыл потребовать WP-Load.php Содержит функцию $ wpdb () .

Я сделалстраница в WordPress, которая содержит форму. теперь формы отправляют данные в файл PHP через этот код javascript

<script>
$(document).ready(function() {
$("#sbmit").click(function() {
var episode = $("#text1").val().split("\n");
var server1 = $("#text2").val().split("\n");
var server2 = $("#text3").val().split("\n");
var server3 = $("#text4").val().split("\n");
if (server1 != undefined || server2 != undefined || server3 != undefined ) { $.post("/submit.php", {
episode1: JSON.stringify(episode),
server11: JSON.stringify(server1),
server21: JSON.stringify(server2),
server31: JSON.stringify(server3),}, function(data) {alert(data);}
);
}});
});
</script>

и Submit.php файл загружает данные в отдельную базу данных MYSQL, так как, яя использую wordpress, я знаю, $ wpdb - это рекомендуемый способ вставки данных в базу данных, но когда я использую $ wpdb , консольный журнал выдает 500 Error Так что я изменился wpdb до новый метод sqli , и он сработал.

Через несколько минут, когда я пытался обновить любой пост, он сказал, что обновление не удалось, но в любом случае обновил мой пост. когда я открыл PHPmyAdmin, пришли сотни ошибок, и все мои данные были, и когда я открыл мой wp-admin, он запустил WordPress со страницы установки, как будто я только что установил WordPress, а также сказал WordPress базы данных Ошибка

Итак, яс вопросом «Влияет ли метод mysqli на Wordpress в любом случае?»

Ниже приведен код Submit.PHP , но когда я нажимаю кнопку «Отправить», я получаю ошибку 500.

<?php
// Create connection
$conn = new wpdb($username, $password, $dbname, $servername);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$Episode2=json_decode($_POST['episode1'], true); // Fetching Values from URL
$Server12=json_decode($_POST['server11'], true);
$Server22=json_decode($_POST['server21'], true);
$Server32=json_decode($_POST['server31'], true);


for ($x = 0; $x < count($Episode2); $x++) {

if ($Episode2[$x] != "") {

$sql = "SELECT Episode FROM DBZ WHERE Episode='".$Episode2[$x]."'";
$result = $conn->get_results($sql);

if (mysqli_num_rows($result) > 0) {

    echo "Episode $Episode2[$x] Server ";
if($Server12[$x] != "") {$sql = "UPDATE DBZ SET Server1 = '".$Server12[$x]."' WHERE Episode = '".$Episode2[$x]."' ";    $result = $conn->get_results($sql); echo "1, ";}

if($Server22[$x] != "") {$sql = "UPDATE DBZ SET Server2 = '".$Server22[$x]."' WHERE Episode = '".$Episode2[$x]."' ";    $result = $conn->get_results($sql);   echo "2, ";}

if($Server32[$x] != "") {$sql = "UPDATE DBZ SET Server3 = '".$Server32[$x]."' WHERE Episode = '".$Episode2[$x]."' ";    $result = $conn->get_results($sql); echo "3 ";}

echo "Updated \n";

} else {

$sql = "INSERT INTO DB VALUES ('".$Episode2[$x]."','".$Server12[$x]."', '".$Server22[$x]."','".$Server32[$x]."')";

$result = $conn->get_results($sql);

echo "Episode $Episode2[$x] is Added in Database \n";

}

} else { echo "Episode Number is Blank";}
}
$conn->close(); // Connection Closed.
?>

1 Ответ

0 голосов
/ 23 октября 2019

Mysqli не «влияет» на WordPress. Однако вы делаете это неправильно.

Вам не нужно создавать новое соединение для использования $ wpdb. Просто объявите глобальный, используйте его напрямую.

GLOBAL $wpdb;
$sql = "SELECT Episode FROM DBZ WHERE Episode='".$Episode2[$x]."'";

$results = $wpdb->get_results($sql);

Также попробуйте использовать операторы prepare для предотвращения инъекций sql.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...