ホームページ  >  記事  >  バックエンド開発  >  mysqlトランザクションが実行できないのはなぜですか?

mysqlトランザクションが実行できないのはなぜですか?

WBOY
WBOYオリジナル
2016-06-13 13:36:47923ブラウズ

mysql トランザクションを実行できないのはなぜですか?
php コード スニペット:

/*-----データベース接続パラメータ--*/

$host="localhost";

$user="root";

$pwd="xxx";

/*--- --データベース接続 -*/

$db=mysql_connect($host,$user,$pwd);

$sql="START TRANSACTION;

SELECT @A :=MAX( iTopicId) FROM lun_topic;

INSERT INTO lun_topic VALUES(@A+1,'トピック','コンテンツ','著者',NOW(),1); COMMIT;";

$result=mysql_db_query($database,$sql);//この文は実行できず、エラーは報告されません





テーブル lun_topic

iTopicId、

vTitle、

txtMessage、

vPostId、

dPostDateTime、

iAreaId



--------------------------



MySql では、INNODB および BDB タイプのテーブルのみがトランザクション処理をサポートしていますが、デフォルトの MYISAM タイプはそれをサポートしていないことに注意してください。テーブル

CREATE TABLE t (i INT) TYPE を作成するときにテーブル タイプを指定できます。 = INNODB;



既存のテーブルのテーブル タイプを変換することもできます

ALTER TABLE t TYPE=INNODB

------ -------- -------------



------解決策----------- ------ ---


php の mysql 関数を実行するには、$sql を 4 つの文に分割する必要があります。また、
は一度に 1 つの SQL 命令のみを実行できます。実際、ストアド プロシージャの定義も単なる命令です。

------解決策------------------

PHP の mysql 関数は、ストアド プロシージャの定義に加えて、一度に 1 つの SQL 命令のみを実行できます

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。