我一直试图想出一些方法来获取我在wordpress页面上制作的html表单,以获取输入的信息并将其发送到wordpress数据库中的自定义表格。我试过调用一个自定义的PHP脚本并在页面本身编写代码,我不知道如何让它工作。我想要弄清楚这一点我疯了,我即将放弃。任何关于从哪里开始寻找的建议,足够我一直在寻找一周,这将是伟大的。
我已经尝试过使用mysqli_connection但是我一直在解决连接的问题(mysite.com,user,pass,db);我得到另一个错误“无法连接”user@anotherunknownsite.com“我有一个共享的IP所以我想知道它是否连接到这个其他网站,我的代码中没有参考。我厌倦了使用本地主机而不是我的网站但什么都行不通。
此代码尝试从数据库中获取一些数据,但没有任何反应,与b4相同,其中mysite.com显示错误,无法连接到user@randomsite.com并且localhost无效。
<?php
$con=mysqli_connect("mysite.com","user","pass","db");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM Liquor_Type");
while($row = mysqli_fetch_array($result)) {
echo $row['lq_name'] . " " . $row['description'];
echo "<br>";
}
mysqli_close($con);
?>
我的表格
<form action = "setLQType.php" method="post">
Add a New Liquor Type</br></br>
<p>Name: <input type="text" name="name"/></p>
<p>Description <input type="text" name="description"/></p>
----------------------------------------------
<input type="submit" name="Submit"/>
</form>
</br>
setLQType php文件,位于主要wordpress词典中。它将到达文件但什么都不做。
<?php
$con=mysqli_connect("mysite.com","user","pass","db_name");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$name = mysqli_real_escape_string($con, $_POST['name']);
$description = mysqli_real_escape_string($con, $_POST['description']);
$sql="INSERT INTO Liquor_Type(lq_name, description)
VALUES ('$name ', '$description)";
if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
echo "1 record added";
mysqli_close($con);
?>
在website.com/setLiquorType.php中更新了插入页面... setLiquorType.php
<?php
$global $wpdb;
$name = $_POST['name'];
$description = $_POST['description'];
$table_name = $wpdb->prefix . "wp_Liquor_Type";
$wpdb->insert($table_name, array(
'lq_name' => $name,
'description' => $description
));
?>
答案 0 :(得分:1)
发布方式如下:
global $wpdb;
$name = sanitize_text_field( $_POST['name']);
$lq_name = sanitize_text_field( $_POST['lq_name']);
$description = $_POST['description'];
$table_name = $wpdb->prefix . "Liquor_Type";
$wpdb->insert( $table_name, array(
'liquor_name' => $liquor_name,
'description' => $description
) );
您的mysql连接在var $ wpdb
中可用global $wpdb;
$sql="SELECT * FROM Liquor_Type";
$row = $wpdb->get_results($sql);
foreach ($row as $data)
{
echo $data->lq_name. " " . $data->description;
echo "<br>";
}
答案 1 :(得分:0)
我建议使用WP函数进行工作。您需要全局对象p4d -jr
才能使用它们。对于插入,请尝试使用$wpdb
。
您可以定义一个放在$wpdb->insert($table, $array)
中的简码或为此制作一个小插件。在同一功能中,您可以绘制表单并尝试从中获取数据(我想我更喜欢先获取数据,最后绘制表单)
这里有一个有效的代码:
functions.php