SQL query() 方法会以任何方式影响 WordPress 吗?



编辑:我忘了要求WP-load.php它包含$wpdb()函数。

我在wordpress中制作了一个包含表单的页面。 现在表单通过这个JavaScript代码将数据发送到PHP文件

<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>

提交.php文件将数据上传到单独的 MYSQL 数据库,因为我知道我正在使用 WordPress$wpdb这是在数据库中插入数据的推荐方式,但是当我使用$wpdb控制台日志时给出500 错误所以我将wpdb更改为新的 sqli方法并且它有效。

几分钟后,当我尝试更新我的任何帖子时,它说更新失败,但无论如何都更新了我的帖子,然后当我打开 PHPmyAdmin 时,出现了数百个错误,我的整个数据是,当我打开我的 wp-admin 时,它从安装页面启动 wordpress,就像我刚刚安装了 wordpress 一样,还说 wordpress 数据库错误

所以我问"mysqli方法会影响WordPress吗?

下面是提交.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.
?>

Mysqli不会"影响"wordpress。但是,你做错了。

无需创建新连接即可使用 $wpdb。只需声明全局,直接使用它。

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

此外,请尝试使用 prepare 语句来防止 sql 注入。

最新更新