Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQL检测在重复密钥更新和上次插入ID时是否插入或更新_Php_Mysql_Sql_Pdo - Fatal编程技术网

Php SQL检测在重复密钥更新和上次插入ID时是否插入或更新

Php SQL检测在重复密钥更新和上次插入ID时是否插入或更新,php,mysql,sql,pdo,Php,Mysql,Sql,Pdo,我正在做一个项目,在这个项目中,我可以从facebook的数据库中收集和保存来自不同来源的用户数据,如果他已经存在,我必须更新用户数据 现在,我正在另一个额外的表中保存facebook_user_id作为唯一键,以确保这是第一次检测到该用户,然后如果是第一次检测到该用户,则进行一些操作 if($dbh->query()) then ... 然后我必须更新用户数据并获取其db id以供进一步使用 $sql = INSERT into users ... ON DUPLICATE KEY U

我正在做一个项目,在这个项目中,我可以从facebook的数据库中收集和保存来自不同来源的用户数据,如果他已经存在,我必须更新用户数据

现在,我正在另一个额外的表中保存facebook_user_id作为唯一键,以确保这是第一次检测到该用户,然后如果是第一次检测到该用户,则进行一些操作

if($dbh->query()) then ...
然后我必须更新用户数据并获取其db id以供进一步使用

$sql = INSERT into users ...
ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), ...
$uid = LAST_INSERT_ID

所以我需要的是一个解决方案,在这个解决方案中,我可以更新用户数据,并检测是第一次插入还是不使用额外的表进行更新。

您使用的是什么数据库?我正在使用的数据库:MySQL(PDO)确保我可以通过选择而不是创建额外的表来获取用户是否已经存在(可能这是一个愚蠢的解决方案:))但无论在哪里,我都在寻找一个更简单、更干净的解决方案,然后做出选择