php
class SqlTool{
public $link;
public $hostName="localhost";
public $userName=" root で 2 つの異なる insert ステートメントを同時に実行する方法";
public $userPwd="";
public $db_Name="qlzx";
public functionexecute_dml($sql){
$res=$this->link-> クエリ($sql) または die($this->link->error);
if(!$res) return 0;
else{
if($this->link-> ;影響を受ける_rows>0) return 1;
else return 2;
}
}
}
$sqlTool=new SqlTool();
$sql="顧客情報に挿入value(null,'{$ci->getEmail()}','{$ci->getPwd()}',now())";
$sql.="顧客詳細情報に挿入 value( last_insert_id (),'{$cdi->getName()}','{$cdi->getTelphone
()}','{$cdi->getMovePhone()}','{$cdi - >getAddress()}')";
$sqlTool->execute_dml($sql);
?>
このステートメントは正常に実行できますか?方法?
-----解決策--------------------------------
いいえ、少なくとも SQL ステートメントを区切るためにセミコロンも必要です。
なぜそのような奇妙な要件があるのか、もっと知りたいのですが、個別に実行することはトラブルシューティングに便利なだけでなく、安全でもあります。
------解決策---------
トランザクションを使用する
------解決策---------
これらを別々に書くのはそれほど手間はかかりません。
last_insert_id() ID は自動でインクリメントされるため、指定する必要はありません。データベースの設計者は、自動インクリメント キーで発生する可能性のある問題を考慮に入れ、開発段階で問題を解決します。
------解決策----------------------
いいえ!
一度に実行できる SQL コマンドは 1 つだけです。これは SQL 攻撃を防ぐための PHP の組み込みの手段です。
それを個別に実行する場合も同様です。データベース接続は切断されていません
------解決策---------
トランザクション処理を使用します。