如何获取用户ID并将其放入表中

时间:2012-06-03 13:02:48

标签: php sql wordpress navicat

我正在努力建立一个基于 WordPress CMS的足球投注系统。如果这是一个多余的问题我很抱歉,但我一整天都在搜索谷歌和一些维基百科,而且我一直无法找到解决这个问题的任何线索。

背景信息:

我用:

  • MySQL的
  • PHP
  • 的Navicat

每次用户输入两个整数,对应于足球比赛中的球门训练时,在php脚本网站上,两个整数通过 insert.php <被发送到数据库表“bets” /强> -file。

insert.php如下所示:

<?php $con = mysql_connect("host","username","password"); if (!$con)   {   die('Could not connect: ' . mysql_error());   }

mysql_select_db("database", $con);

$sql="INSERT INTO bets (homebet, awaybet) VALUES ('$_POST[homebet]','$_POST[awaybet]')";

if (!mysql_query($sql,$con))   {   die('Error: ' . mysql_error());   } echo "Thanks for betting!";

mysql_close($con); ?>

php-form看起来像这样:

我有以下自制表:投注团队匹配,我有WordPress表, wp -users ,列出每个成员。

投注表如下所示: each row corresponds to a new bet

正如您所看到的,userid是空的 - 它不应该是空的。它应该包含输入赌注的用户的ID。

我的两部分问题是......

我应该如何获取用户的ID并将其显示在数据库表中 bets ?也许WordPress有一个代码片段。

最后,我应该如何为每场比赛添加 gameid ?我应该为每场新比赛创建一个新的表单吗?

提前多多谢谢 SO - 我希望我能够让这个帖子易读且容易理解。

Frederick Andersen

1 个答案:

答案 0 :(得分:1)

你在这里遗漏了很多东西。我不能建议你如何管理不同的游戏,因为我不知道你的应用程序的其余部分是什么样的。

以下是一些指导您的信息:

不要创建自己的数据库连接

卸下:

$con = mysql_connect("host","username","password"); if (!$con)   {   die('Could not connect: ' . mysql_error());   }

mysql_select_db("database", $con);

添加:

require_once($_SERVER['DOCUMENT_ROOT'].'/wp-load.php');

WordPress当前用户ID

将此添加到顶部脚本:

global $wpdb, $current_user;
get_currentuserinfo();

将$ sql代码更改为:

$sql= $wpdb->prepare("INSERT INTO `bets` (`userid`, `homebet`, `awaybet`) VALUES (%d, %d, %d)", $current_user->ID, $_POST['homebet'], $_POST['awaybet']);

我还使用了wpdb prepare函数,因此您的帖子数据会在被查询之前被转义。

同时更改此项以使用WP本机查询。

卸下:

if (!mysql_query($sql,$con))   {   die('Error: ' . mysql_error());   } echo "Thanks for betting!";

mysql_close($con);

添加:

$wpdb->query($sql)