テーブルから2つの異なるデータベースの別のmysqlテーブルにデータをコピーしようとしています
最初にすべてのデータを最初のテーブルから取得し、それらをphp変数に格納します
次に、その変数をループして、他のテーブルにデータを挿入します
このクエリを使用
INSERT INTO `users` (`nUserId`, `vLoginName`, `vFirstName`, `vLastName`, `vEmail`)
VALUES ('$entity_id','$name','$firstname','$lastname','$email')
WHERE NOT EXISTS (SELECT `nUserId`,`vEmail`
FROM `users`
WHERE `nUserId`='$entity_id'
AND `vEmail` = '$email')
しかし、それは機能していません
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE NOT EXISTS (SELECT `nUserId`,`vEmail` FROM users '
これを機能させるための正しい構文は何ですか?
WHERE
ステートメントではINSERT
句を使用できません。ただし、INSERT IGNORE
targerテーブルでnUserIdまたはvEmailを一意のキーとして定義する場合。
INSERT構文の詳細: https://dev.mysql.com/doc/refman/5.6/en/insert.html
問題はVALUESかもしれないと思うので、ステートメントを次のように書きます。
INSERT INTO `users`
(`nUserId`, `vLoginName`, `vFirstName`, `vLastName`, `vEmail`)
SELECT
'$entity_id', '$name', '$firstname', '$lastname', '$email'
FROM dual
WHERE NOT EXISTS (SELECT *
FROM `users`
WHERE `nUserId`='$entity_id'
AND `vEmail` = '$email')
あなたは何かを試すことができます
delimiter $$
create procedure select_or_insert()
begin
IF EXISTS (select * from users where username = 'something') THEN
update users set id= 'some' where username = 'something';
ELSE
insert into users (username) values ('something');
END IF;
end $$
delimiter ;
それらをphpに保存する必要はありません。
指定したテーブルとまったく同じようにテーブルを作成します。注:列のみをコピーします
CREATE TABLE tbl_name LIKE db_name.tbl_name;
特定の列名が必要な場合:
CREATE TABLE tbl_name SELECT column_name, column_name FROM db_name.tbl_name;
次に、すべてのデータをコピーする場合は、
INSERT INTO tbl_name SELECT * FROM db_name.tbl_name;
または特定の列データは
INSERT INTO tbl_name SELECT column_name, column_name FROM db_name.tbl_name;
特定のデータが必要な場合は、WHERE句を追加します。
$existeEmail=$mysqli->query("SELECT * FROM tb_users WHERE email = '$email'");
if(!$existeEmail=mysqli_fetch_array($existeEmail))/*si existe en la tabla tblreseteopass*/
{
}else{
$email = $existeEmail['email'];
// Direccionado hacia el registro con la Alerta 001
// ya existe una cuenta asociada a este email, si no recuerda la contraseña, solicite una nueva
header("Location: https://www.yourpage.com/b/?m=f_lg);
}