Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

MySQL สร้างผู้ใช้ด้วยตัวแปร?


คุณสามารถใช้การสืบค้นแบบไดนามิกสำหรับสิ่งนี้ ขั้นแรกให้ตั้งชื่อตัวแปรสำหรับชื่อผู้ใช้และชื่อตัวแปรสำหรับรหัสผ่าน ไวยากรณ์มีดังนี้ −

SET @anyVariableName='yourUserName';SET @anyVariableName1='yourpassword';

ตอนนี้คุณสามารถใช้ฟังก์ชัน CONCAT() จาก MySQL ไวยากรณ์มีดังนี้ −

SET @yourQueryName =CONCAT(' CREATE USER "',@anyVariableName,'"@"localhost" IDENTIFIED BY "',@anyVariableName1,'" ');

ให้เราใช้คำสั่ง PREPARE ที่เตรียมไว้ ไวยากรณ์มีดังนี้ −

เตรียม yourStatementVariableName จาก @yourQueryName;

ตอนนี้คุณสามารถดำเนินการคำสั่ง ไวยากรณ์มีดังนี้ −

ดำเนินการของคุณStatementVariableName;

Deallocate ข้างต้นโดยใช้ DEALLOCATE PREPARE ไวยากรณ์มีดังนี้ −

DEALLOCATE PREPARE yourStatementVariableName;

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราทำตามขั้นตอนทั้งหมด -

ขั้นตอนที่ 1 − ขั้นแรกให้สร้างตัวแปรสองตัว ตัวหนึ่งสำหรับชื่อผู้ใช้และตัวที่สองสำหรับรหัสผ่านโดยใช้คำสั่ง SET

แบบสอบถามมีดังต่อไปนี้เพื่อสร้างชื่อผู้ใช้ -

mysql> set @UserName:='John Doe';Query OK, 0 แถวได้รับผลกระทบ (0.00 วินาที)

แบบสอบถามเพื่อสร้างรหัสผ่าน

mysql> set @Password:='John Doe 123456';Query OK, 0 แถวได้รับผลกระทบ (0.00 วินาที)

ขั้นตอนที่ 2 − ตอนนี้ใช้ฟังก์ชัน CONCAT() เพื่อสร้างผู้ใช้ แบบสอบถามมีดังนี้ −

mysql> SET @CreationOfUser =CONCAT(' '> CREATE USER "',@UserName,'"@"localhost" IDENTIFIED BY "',@Password,'" ' -> );แบบสอบถามตกลง 0 แถวได้รับผลกระทบ ( 0.02 วินาที)

ในแบบสอบถามข้างต้น เราได้ใช้ชื่อตัวแปร @UserName และชื่อตัวแปร @Password เพื่อสร้างผู้ใช้ที่มีชื่อและรหัสผ่าน

ขั้นตอนที่ 3 − ตอนนี้ คุณต้องเตรียมคำสั่งโดยใช้ตัวแปรที่ผู้ใช้กำหนดข้างต้น @CreationOfUser แบบสอบถามมีดังนี้ −

mysql> เตรียม st จาก @CreationOfUser ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.00 วินาที) เตรียมคำสั่ง

ขั้นตอนที่ 4 − ดำเนินการคำสั่งที่เตรียมไว้ข้างต้น แบบสอบถามมีดังนี้ −

mysql> EXECUTE st;Query OK, 0 แถวได้รับผลกระทบ (0.37 วินาที)

ขั้นตอนที่ 5 − ตรวจสอบว่าผู้ใช้ “John Doe” ถูกสร้างขึ้นในตาราง MySQL.user แล้ว -

mysql> เลือกผู้ใช้, โฮสต์จาก MySQL.user;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+--------------------------------------+| ผู้ใช้ | โฮสต์ |+-----------------------------------------------+| มานิช | % || ผู้ใช้2 | % || mysql.infoschema | % || mysql.session | % || mysql.sys | % || ราก | % || @ชื่อผู้ใช้@ | localhost || อดัม สมิธ | localhost || จอห์น | localhost || จอห์น โด | localhost || ผู้ใช้1 | localhost || น | localhost || hbstudent | localhost |+----------------------------------------------------+13 แถวในชุด (0.00 วินาที)

ใช่ เรามีชื่อผู้ใช้กับ John Doe

ขั้นตอนที่ 6 − ตอนนี้ DEALLOCATE คำสั่งที่เตรียมไว้ แบบสอบถามมีดังนี้ −

mysql> DEALLOCATE PREPARE st;Query OK, 0 แถวได้รับผลกระทบ (0.00 วินาที)