����״̬

����ı��� PHP MySQL ���ӵĿ��ƣ��½����ӻ��һ�����ӳ��л�ȡ��������� client-server �ĵ�һ���ӷ�ʽ�����ӳذ���һ�� master ���ӣ��Ϳ�ѡ��Ŀ�� slave ���ӡ�

���ӳ��е�ÿһ�����Ӷ����Լ���״̬�����磺SQL �û���������ʱ������״̬�� ���е�����״̬���Բο� ���ӳ����л� ˵���� ����������ҪΪ���ؾ����л����ӣ�Ӧ�ÿ��ܵõ�һ����ͬ״̬�����ӡ� Ӧ�ñ����ܹ�������Щ���⡣

Example #1 ������һ�� master ��һ�� slave �IJ��

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            }
        }
    }
}

Example #2 ���壺����״̬�� SQL �û�����

<?php
$mysqli 
= new mysqli("myapp""username""password""database");
if (!
$mysqli)
  
/* Of course, your error handling is nicer... */
  
die(sprintf("[%d] %s\n"mysqli_connect_errno(), mysqli_connect_error()));

/* ���� 1���� SQL �û���������Ϊû�� SELECT ������ master ��ִ�� */
if (!$mysqli->query("SET @myrole='master'")) {
 
printf("[%d] %s\n"$mysqli->errno$mysqli->error);
}

/* ���� 2����Ϊ�� SELECT ������ slave ��ִ�� */
if (!($res $mysqli->query("SELECT @myrole AS _role"))) {
 
printf("[%d] %s\n"$mysqli->errno$mysqli->error);
} else {
 
$row $res->fetch_assoc();
 
$res->close();
 
printf("@myrole = '%s'\n"$row['_role']);
}
$mysqli->close();
?>

�������̻������

@myrole = ''

�������˸��ؾ������ӣ�����ִ��������ѯ�� ��һ����ѯ SET @myrole='master' û���� SELECT ��ͷ��Ȼ��������ʶ������һ��Ӧ���� slave ��ִ�еIJ�ѯ������������ master ��ִ�С� ����������������� master �����У�master �����趨���ı��ˡ�

Ȼ��ִ�� SELECT @myrole AS _role ��ѯ�������ʶ��Ϊֻ����ѯ�� ���ҷ��͸� slave �����������������ѯ�������κ��Ѿ��趨�� SQL �û������� ����������趨���˵�һ��ʹ�õ� master �������档���Է�������ӡ @myrole = ''��

���ǿ�����Ա����ע������⣬������������������ӵı仯����� ��Ҫ������еı仯�������Ĵ����� CPU ��Դ��

��Ȼ�������壬����ͨ�� SQL hints �����