编辑:我忘记了包含$ wpdb()函数的WP-Load.php。
我在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>
和Submit.php文件将数据上传到单独的MYSQL数据库, 因为, 我使用的是wordpress, 我知道$ wpdb是在数据库中插入数据的推荐方法, 但是当我使用$ wpdb时, 控制台日志给出了500错误, 所以我更改了wpdb到新的sqli方法, 并且有效。
几分钟后, 当我尝试更新我的任何帖子时, 它说更新失败, 但无论如何还是更新了帖子, 然后当我打开PHPmyAdmin时出现了数百个错误, 我的整个数据都在打开我的wp-admin时, 它从安装开始了wordpress像我刚安装了wordpress的页面, 还说wordpress数据库错误
所以我问” mysqli方法是否会影响Wordpress?”
下面是Submit.PHP代码, 但是当我单击Submit时出现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.
?>
#1Mysqli不会” 影响” wordpress。但是, 你做错了。
你无需创建新连接即可使用$ wpdb。只需声明全局, 直接使用它即可。
GLOBAL $wpdb;
$sql = "SELECT Episode FROM DBZ WHERE Episode='".$Episode2[$x]."'";
$results = $wpdb->
get_results($sql);
【SQL query()方法是否以任何方式影响WordPress()】另外, 请尝试使用prepare语句来防止sql注入。
推荐阅读
- CSS-禁用菜单动画
- 在线激活wordpress主题时,div不会浮动-在localhost上可以
- DIV在结帐页面上生成了2次(WOO COMMERCE)()
- Divi(桌面视图中的部分突然消失)
- Divi(限制点击次数按钮)
- 在centos 下 设计“安全”的delete命令替代rm。
- shell 隔行打印
- Linux网络编程原始套接字能干什么()
- Linux驱动字符设备驱动