Php 查询MySQL数据库以插入特定记录

Php 查询MySQL数据库以插入特定记录,php,mysql,database,select,Php,Mysql,Database,Select,我试图在我的网站上插入关于用户的数据,但我认为我使用的MySQL查询无效。我想在“pph_user_profile”表中的“pph_user_bio”列中插入值“$profile”,但是在该表中有一个外键链接回一个名为“users”的表,该表存储用户的“_id”,因此我只希望数据库将数据($profile)插入到设置为当前会话id的相应“_id”中 $query = "INSERT INTO pph_user_profile (pph_user_profile) VALUES ($profile

我试图在我的网站上插入关于用户的数据,但我认为我使用的MySQL查询无效。我想在“pph_user_profile”表中的“pph_user_bio”列中插入值“$profile”,但是在该表中有一个外键链接回一个名为“users”的表,该表存储用户的“_id”,因此我只希望数据库将数据($profile)插入到设置为当前会话id的相应“_id”中

$query = "INSERT INTO pph_user_profile (pph_user_profile) VALUES ($profile)" .
"SELECT _id " .
"FROM users" .
"WHERE _id = ". $_SESSION['_id_of_user'];
$result = mysql_query($query);
我是MySQL的新手,有没有人能告诉我是哪里出错的

编辑:

这是一个更新后的查询,我仍在尝试做同样的事情,“pph_user_profile”中不存在行,所以它肯定是插入的

$query = "INSERT INTO pph_user_profile (_id) VALUES " . $_SESSION['_id_of_user'];
mysql_query($query);                    

$query = "INSERT INTO pph_user_profile (pph_user_bio) VALUES ($bio) WHERE _id = " . $_SESSION['_id_of_user'];                                                                               
mysql_query($query);

pph_用户_配置文件中的行是否已存在?如果是,则希望更新而不是插入。如果否,则需要同时插入数据和用户id

您的SQL无效,因为您试图运行两个不同的语句而不将它们分开。如果您直接在服务器上运行SQL,则需要放置一个;在他们之间。因为您是通过PHP进行的,所以每次调用mysql_query(),您应该限制自己只能进行一次查询——例如,进行两次调用,每次调用一次

编辑

你正在使用

$query = "INSERT INTO pph_user_profile (_id) VALUES " . $_SESSION['_id_of_user'];
mysql_query($query);                    

$query = "INSERT INTO pph_user_profile (pph_user_bio) VALUES ($bio) WHERE _id = " .  $_SESSION['_id_of_user'];                                                                               
mysql_query($query);
尝试:


我想您可能在寻找
更新
语句,而不是
插入

$query = "UPDATE pph_user_profile SET pph_user_profile=$profile" .
"WHERE _id = ". $_SESSION['_id_of_user'];
您可以使用
UPDATE
在现有记录上设置值,也可以使用
WHERE
子句指定要更新的记录

要插入新行并设置两列,可以执行以下操作:

$query = "INSERT INTO pph_user_profile (pph_user_profile, _id)".
"VALUES ($profile, ". $_SESSION['_id_of_user'] .")";
要插入新行,但如果键已存在,则更新它,请使用
insert-INTO。。。在重复密钥更新时

$query = "INSERT INTO pph_user_profile (pph_user_profile, _id)".
"VALUES ($profile, ". $_SESSION['_id_of_user'] .")".
"ON DUPLICATE KEY UPDATE pph_user_profile = $profile";

如果要插入到特定列中,则需要将“pph_用户_配置文件”的第二个实例更改为“pph_用户_bio”。有关完整查询,请参见下面的答案。目前表中没有行,因此我仍然认为它是insert,您介意更改示例以使其插入吗?我同意,我将编辑代码以向您显示我的新查询,尽管它仍然不起作用。
$query = "INSERT INTO pph_user_profile (pph_user_profile, _id)".
"VALUES ($profile, ". $_SESSION['_id_of_user'] .")".
"ON DUPLICATE KEY UPDATE pph_user_profile = $profile";