在那里,我想为用户名和传记做简单的upadate表单,有些东西丢失,我无法更新,我得到空白页面,当我重新加载没有更新sooo这是我在wordpress网站上的代码:
[insert_php]
global $current_user;
global $wpdb;
$result = $wpdb->get_results( "SELECT * FROM wpah_users WHERE ID=$current_user->ID");
foreach($result as $row)
{
echo "<form action='' method='post'>";
echo "<br><br><br>";
echo "<p>Name: " .$row->wpah_users ." "."<input type='text' id='name' Name='name'value='$row->user_nicename'/> "." </p><br> ";
echo "<p>Biography: " .$row->wpah_users ." "."<input type='text' id='Biography' name='Biography' value='$row->Biography'/> "." </p><br> ";
echo "<input type='submit' name='show' id='show' value='Upvote'>";
echo '</form>';
}
if(isset($_POST['show'])){
$name=$_POST["name"];
$biography=$_POST["Biography"];
$sql ="UPDATE $wpah_users
SET ".$Biography."`= '$Biography', WHERE `".$ID."` = '$current_user->ID'";
$rez = $wpdb->query($sql);
}
[/insert_php]
答案 0 :(得分:0)
一些问题。
Data Validation
和WHERE ".$ID."
的评论实际上并非拖延......后者是良好编码标准的缩影。.
包含一个标识符“SQL
”,在我的知识中,php会识别为在侧标识中调用另一个对象。也许你的意思是,但这是Dynamic Query
,你正在使用SQL
。 SQL
按SQL Injection
的规则运行。在查询中使用sp_executesql - MSDN。查询本身不会向用户公开,它会正确验证每个变量,使SQL
成为不可能。
您将关系语言视为游标。为什么? SQL
能够一次性返回整个结果集。按照原样使用i
。
希望这些提示可以帮助您找到解决方案。 的问候,