在php中单击按钮时将数据插入MySQL

在php中单击按钮时将数据插入MySQL,php,html,mysql,Php,Html,Mysql,我想在用户单击表中的按钮时向数据库添加数据 我正在Wordpress中为股票创建一个投资组合,用户应该能够将股票添加到他们的投资组合中 这是我的insert_to_db.php文件,查询就在这里。 get_current_user_id()获取用于标识用户的用户id global $wpdb; <?php if(isset($_POST['id'])){ echo "You clicked button one!" ; $sql

我想在用户单击表中的按钮时向数据库添加数据

我正在Wordpress中为股票创建一个投资组合,用户应该能够将股票添加到他们的投资组合中

这是我的insert_to_db.php文件,查询就在这里。 get_current_user_id()获取用于标识用户的用户id


global $wpdb;

<?php
    if(isset($_POST['id'])){
        echo "You clicked button one!" ;
      $sql = $wpdb->prepare("INSERT INTO user_portfolio (Name, Price, Date, User_ID)
              VALUES ('$name','$price','$date',get_current_user_id())");
      $results = $wpdb->get_results( $sql );
      $results -> execute();
    }
    else {
    echo" dhur";
    }
?>
Html:


名称
今日价格
加入投资组合

现在,当点击按钮时,我被重定向到首页,数据没有添加到MySQL数据库。

什么是
$con
?什么是
获取当前用户id()
?如果它不是数据库的用户定义函数,那么您就犯了很大的错误。您需要使用占位符正确地准备语句,以避免严重的安全风险,并可能修复您遇到的问题。您也没有检查任何错误,甚至没有检查数据库操作是否成功。如果你不看,你怎么知道出了什么问题呢?添加了$con和get_current_user_id(),对此很抱歉。抛开Wordpress具有数据库访问功能这一事实,你不能仅仅将PHP函数放入字符串中,然后期望它工作。更重要的是,您不能将任何PHP代码放入查询并期望它是安全的。您的SQL应该类似于
将三个值绑定到语句中,并插入到用户组合(名称、价格、用户ID)值(?、、?)
。链接的副本包含了很多这样做的例子。谢谢你的建议。
function trendy2($Name, $Price, $user_id){
    $link = "https://signal-invest.com/tick/?ticker=";
    echo "<tr>
    <td>$Name</td>
    <td>$Price</td>
    <td><form method='POST' action='insert_to_db.php'>
        <input type='submit' name='id' value='$user_id'/>$user_id
    </form>
    </td></tr>";}
<table >
         <tr>
            <th>NAME</th>
            <th>PRICE TODAY</th>
            <th>ADD TO PORTFOLIO</th>
         </tr>
         <?php
            foreach ($results_query_uptrend as $r){
                $name = $r["Name"];
                $price = $r['Price'];
                echo trendy2($name, $price, $user_id);                                              
            }
        ?>
    </table>