<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.multitheftauto.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Abdo+Nour</id>
	<title>Multi Theft Auto: Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.multitheftauto.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Abdo+Nour"/>
	<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/wiki/Special:Contributions/Abdo_Nour"/>
	<updated>2026-05-16T10:58:08Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=ExecuteSQLQuery&amp;diff=66549</id>
		<title>ExecuteSQLQuery</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=ExecuteSQLQuery&amp;diff=66549"/>
		<updated>2020-05-15T16:28:59Z</updated>

		<summary type="html">&lt;p&gt;Abdo Nour: /* Required Arguments */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Server function}}&lt;br /&gt;
&lt;br /&gt;
This function executes an arbitrary SQL query and returns the result rows if there are any. It allows parameter binding for security (SQL injection is rendered impossible).&lt;br /&gt;
{{Note|This function only acts upon registry.db. Use [[dbQuery]] to query a custom SQL database.}}&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
table executeSQLQuery ( string query [, var param1 [, var param2 ... ] ] )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Required Arguments===&lt;br /&gt;
*'''query:''' استعلامات SQL. يتم وضع علامة &amp;quot;?&amp;quot; علي المواضع التي سوف يتم ادراج قيم المعلومات فيها.&lt;br /&gt;
&lt;br /&gt;
===Optional Arguments===&lt;br /&gt;
*'''paramX:''' A variable number of parameters. These must be strings or numbers - it is important to make sure they are of the correct type. Also, the number of parameters passed must be equal to the number of &amp;quot;?&amp;quot; characters in the query string.&lt;br /&gt;
String parameters are automatically escaped by adding a backslash (\) before ' and \ characters.&lt;br /&gt;
&lt;br /&gt;
===Returns===&lt;br /&gt;
Returns a table with the result of the query if it was a SELECT query, or ''false'' if otherwise. In case of a SELECT query the result table may be empty (if there are no result rows). The table is of the form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    { colname1=value1, colname2=value2, ... },&lt;br /&gt;
    { colname1=value3, colname2=value4, ... },&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
A subsequent table represents the next row.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
Below are examples of equivalents for the deprecated executeSQL functions. Note that ` (backtick) can optionally be used to surround table and row names. It usually a good idea to do this to avoid name clashes with SQL reserved words.&lt;br /&gt;
&lt;br /&gt;
مثال لعمل جدول جديد:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
executeSQLQuery(&amp;quot;CREATE TABLE IF NOT EXISTS players (clothes_head_texture TEXT, clothes_head_model TEXT, name TEXT)&amp;quot;) -- اذا لا يوجد جدول بنفس الإسم يصنع جدول بإسم players ويضع كولمن بداخل الجدول&lt;br /&gt;
executeSQLQuery(&amp;quot;CREATE TABLE IF NOT EXISTS `players` (`clothes_head_texture` TEXT, `clothes_head_model` TEXT, `name` TEXT)&amp;quot;) -- اذا لا يوجد جدول بنفس الإسم يصنع جدول بإسم `players` ويضع كولمن بداخل الجدول&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
مثال لحذف رو من الجدول:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
playerName = getPlayerName(thePlayer) -- إحضار اسم اللاعب&lt;br /&gt;
executeSQLQuery(&amp;quot;DELETE FROM players WHERE name=?&amp;quot;, playerName) -- حذف الرو الخاص باللاعب المعرف بالكولمن name من خلال اسمه&lt;br /&gt;
executeSQLQuery(&amp;quot;DELETE FROM `players` WHERE `name`=?&amp;quot;, playerName) -- حذف الرو الخاص اللاعب المعرف بالكولمن `name` من خلال اسمه&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
مثال لحذف الجدول بالكامل:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
executeSQLQuery(&amp;quot;DROP TABLE players&amp;quot; ) -- حذف الجدول المسمي بـ players&lt;br /&gt;
executeSQLQuery(&amp;quot;DROP TABLE `players`&amp;quot; ) -- حذف الجدول المسمي بـ `players`&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example equivalents for executeSQLSelect:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
playerName = getPlayerName(thePlayer) -- إحضار اسم اللاعب&lt;br /&gt;
executeSQLQuery(&amp;quot;SELECT score,health FROM players WHERE name=?&amp;quot;, playerName ) -- الحصول علي المعلومات المخزنة التي تحتوي علي نقاط ودم اللاعب من خلال اسمه المعرف بجدول players وبكولمن name&lt;br /&gt;
executeSQLQuery(&amp;quot;SELECT `score`,`health` FROM `players` WHERE `name`=?&amp;quot;, playerName ) -- الحصول علي المعلومات المخزنة التي تحتوي علي نقاط ودم اللاعب من خلال اسمه المعرف بجدول `players` وبكولمن `name`&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
مثال لوضع رو جديد بالكولمن:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
playerName = getPlayerName(thePlayer) -- احضار اسم اللاعب&lt;br /&gt;
colorName = &amp;quot;Blue&amp;quot; -- لون الإسم&lt;br /&gt;
soundName = &amp;quot;sound.mp3&amp;quot; -- الصوت الخاص بالإسم&lt;br /&gt;
executeSQLQuery(&amp;quot;INSERT INTO players(name,color,sound) VALUES(?,?,?)&amp;quot;, playerName, colorName, soundName ) -- اختيار الجدول players ووضع رو الاسم بكولمن name ووضع رو اللون بكولمن color ووضع رو الصوت بكولمن sound.&lt;br /&gt;
executeSQLQuery(&amp;quot;INSERT INTO `players`(`name`,`color`,`sound`) VALUES(?,?,?)&amp;quot;, playerName, colorName, soundName ) -- اختيار الجدول `players` ووضع رو الاسم بكولمن `name` ووضع رو اللون بكولمن `color` ووضع رو الصوت بكولمن `sound`.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
مثال لتحديث معلومات رو معين بالكولمن:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
playerName = getPlayerName(thePlayer) -- اسم اللاعب&lt;br /&gt;
colorName = &amp;quot;Blue&amp;quot; -- لون الاسم&lt;br /&gt;
soundName = &amp;quot;sound.mp3&amp;quot; -- الصوت الخاص بالاسم&lt;br /&gt;
executeSQLQuery(&amp;quot;UPDATE players SET color='green',sound='somehead' WHERE name=?&amp;quot;, playerName ) -- تحديث الرو الخاص بإسم اللاعب وتعريف المعلومات عن طريق كتابة التعريف بجانب كل كولمن ليتم حفظه في رو اللاعب&lt;br /&gt;
executeSQLQuery(&amp;quot;UPDATE players SET color=?,sound=? WHERE name=?&amp;quot;, colorName, soundName, playerName ) -- تحديث الرو الخاص بإسم اللاعب وتعريف المعلومات عن طريق المعلومات التي جلبناها من قبل فوق&lt;br /&gt;
executeSQLQuery(&amp;quot;UPDATE `players` SET `color`=?,`sound`=? WHERE `name`=?&amp;quot;, colorName, soundName, playerName ) -- تحديث الرو الخاص بإسم اللاعب ولكن بجدول وكولمن مختلف&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
هذا المثال يعرض قائمة اللاعبين المسجلين في قاعدة البيانات والذين لدليهم اكثر عدد من المال.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function listPlayersWithMoreMoneyThan(thePlayer, command, amount) -- عمل وظيفة&lt;br /&gt;
    local players = executeSQLQuery(&amp;quot;SELECT id, name FROM players WHERE money &amp;gt; ?&amp;quot;, tonumber(amount)) -- اختيار اسم اللاعب من خلال اكثر عدد من المال المسجل في القاعدة وتعريفها بإسم players ليتم جلبها فيما بعد&lt;br /&gt;
    outputConsole(&amp;quot;Players with more money than &amp;quot; .. amount .. &amp;quot;:&amp;quot;, thePlayer)&lt;br /&gt;
    for i, playerdata in ipairs(players) do -- اختيار معلومات اللاعب من القاعدة المعرفة بإسم players&lt;br /&gt;
        outputConsole(playerdata.id .. &amp;quot;: &amp;quot; .. playerdata.name, thePlayer) -- اظهار رقم الرو و اسم اللاعب في اف8&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
addCommandHandler(&amp;quot;richplayers&amp;quot;, listPlayersWithMoreMoneyThan) -- كتابة الامر rechplayers لتشغيل الوظيفة&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This example shows the amount of money a certain registered player has.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function showPlayerMoney(thePlayer, command, playerName) -- عمل وظيفة&lt;br /&gt;
    local result = executeSQLQuery(&amp;quot;SELECT money FROM players WHERE name=?&amp;quot;, playerName) -- جلب عدد المال من قاعدة players من خلال الاسم&lt;br /&gt;
    if(#result == 0) then -- نتأكد اذا الجدول = 0&lt;br /&gt;
        outputConsole(&amp;quot;No player named &amp;quot; .. playerName .. &amp;quot; is registered.&amp;quot;, thePlayer) -- يرسل ب اف8 للاعب ان اسم اللاعب ليس مسجل&lt;br /&gt;
    else -- اذا الجدول لا يساوي 0&lt;br /&gt;
        outputConsole(&amp;quot;Money amount of player &amp;quot; .. playerName .. &amp;quot; is &amp;quot; .. result[1].money, thePlayer) -- يكتب اسم اللاعب وعدد المال المسجل في القاعده لديه&lt;br /&gt;
    end -- انهاء التحقق&lt;br /&gt;
end -- انهاء الوظيفة&lt;br /&gt;
addCommandHandler(&amp;quot;playermoney&amp;quot;, showPlayerMoney) -- كتابة الامر playermoney لتشغيل الوظيفة&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice the lack of single quotes around the &amp;quot;?&amp;quot; in this example, even though it represents a string. executeSQLQuery will see that the playerName variable is a string and take care of the correct execution of the query by itself.&lt;br /&gt;
&lt;br /&gt;
The advantage of using executeSQLQuery is that it is immune to users trying to exploit the query with an SQL injection attack. playerName may contain special characters like ', &amp;quot; or -- that will not influence the query, unlike the older approach where playerName would be concatenated into the query string.&lt;br /&gt;
&lt;br /&gt;
By: [Abdo Nour]&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
{{Registry_functions}}&lt;br /&gt;
&lt;br /&gt;
[[ru:executeSQLQuery]]&lt;/div&gt;</summary>
		<author><name>Abdo Nour</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=ExecuteSQLQuery&amp;diff=66548</id>
		<title>ExecuteSQLQuery</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=ExecuteSQLQuery&amp;diff=66548"/>
		<updated>2020-05-15T16:26:04Z</updated>

		<summary type="html">&lt;p&gt;Abdo Nour: /* هذه القاعدة تستخدم لحفظ البيانات وجلبها ولا يتم حذف البيانات في حالة الخروج او اغلاق السيرفر */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Server function}}&lt;br /&gt;
&lt;br /&gt;
This function executes an arbitrary SQL query and returns the result rows if there are any. It allows parameter binding for security (SQL injection is rendered impossible).&lt;br /&gt;
{{Note|This function only acts upon registry.db. Use [[dbQuery]] to query a custom SQL database.}}&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
table executeSQLQuery ( string query [, var param1 [, var param2 ... ] ] )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Required Arguments===&lt;br /&gt;
*'''query:''' An SQL query. Positions where parameter values will be inserted are marked with a &amp;quot;?&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Optional Arguments===&lt;br /&gt;
*'''paramX:''' A variable number of parameters. These must be strings or numbers - it is important to make sure they are of the correct type. Also, the number of parameters passed must be equal to the number of &amp;quot;?&amp;quot; characters in the query string.&lt;br /&gt;
String parameters are automatically escaped by adding a backslash (\) before ' and \ characters.&lt;br /&gt;
&lt;br /&gt;
===Returns===&lt;br /&gt;
Returns a table with the result of the query if it was a SELECT query, or ''false'' if otherwise. In case of a SELECT query the result table may be empty (if there are no result rows). The table is of the form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    { colname1=value1, colname2=value2, ... },&lt;br /&gt;
    { colname1=value3, colname2=value4, ... },&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
A subsequent table represents the next row.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
Below are examples of equivalents for the deprecated executeSQL functions. Note that ` (backtick) can optionally be used to surround table and row names. It usually a good idea to do this to avoid name clashes with SQL reserved words.&lt;br /&gt;
&lt;br /&gt;
مثال لعمل جدول جديد:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
executeSQLQuery(&amp;quot;CREATE TABLE IF NOT EXISTS players (clothes_head_texture TEXT, clothes_head_model TEXT, name TEXT)&amp;quot;) -- اذا لا يوجد جدول بنفس الإسم يصنع جدول بإسم players ويضع كولمن بداخل الجدول&lt;br /&gt;
executeSQLQuery(&amp;quot;CREATE TABLE IF NOT EXISTS `players` (`clothes_head_texture` TEXT, `clothes_head_model` TEXT, `name` TEXT)&amp;quot;) -- اذا لا يوجد جدول بنفس الإسم يصنع جدول بإسم `players` ويضع كولمن بداخل الجدول&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
مثال لحذف رو من الجدول:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
playerName = getPlayerName(thePlayer) -- إحضار اسم اللاعب&lt;br /&gt;
executeSQLQuery(&amp;quot;DELETE FROM players WHERE name=?&amp;quot;, playerName) -- حذف الرو الخاص باللاعب المعرف بالكولمن name من خلال اسمه&lt;br /&gt;
executeSQLQuery(&amp;quot;DELETE FROM `players` WHERE `name`=?&amp;quot;, playerName) -- حذف الرو الخاص اللاعب المعرف بالكولمن `name` من خلال اسمه&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
مثال لحذف الجدول بالكامل:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
executeSQLQuery(&amp;quot;DROP TABLE players&amp;quot; ) -- حذف الجدول المسمي بـ players&lt;br /&gt;
executeSQLQuery(&amp;quot;DROP TABLE `players`&amp;quot; ) -- حذف الجدول المسمي بـ `players`&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example equivalents for executeSQLSelect:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
playerName = getPlayerName(thePlayer) -- إحضار اسم اللاعب&lt;br /&gt;
executeSQLQuery(&amp;quot;SELECT score,health FROM players WHERE name=?&amp;quot;, playerName ) -- الحصول علي المعلومات المخزنة التي تحتوي علي نقاط ودم اللاعب من خلال اسمه المعرف بجدول players وبكولمن name&lt;br /&gt;
executeSQLQuery(&amp;quot;SELECT `score`,`health` FROM `players` WHERE `name`=?&amp;quot;, playerName ) -- الحصول علي المعلومات المخزنة التي تحتوي علي نقاط ودم اللاعب من خلال اسمه المعرف بجدول `players` وبكولمن `name`&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
مثال لوضع رو جديد بالكولمن:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
playerName = getPlayerName(thePlayer) -- احضار اسم اللاعب&lt;br /&gt;
colorName = &amp;quot;Blue&amp;quot; -- لون الإسم&lt;br /&gt;
soundName = &amp;quot;sound.mp3&amp;quot; -- الصوت الخاص بالإسم&lt;br /&gt;
executeSQLQuery(&amp;quot;INSERT INTO players(name,color,sound) VALUES(?,?,?)&amp;quot;, playerName, colorName, soundName ) -- اختيار الجدول players ووضع رو الاسم بكولمن name ووضع رو اللون بكولمن color ووضع رو الصوت بكولمن sound.&lt;br /&gt;
executeSQLQuery(&amp;quot;INSERT INTO `players`(`name`,`color`,`sound`) VALUES(?,?,?)&amp;quot;, playerName, colorName, soundName ) -- اختيار الجدول `players` ووضع رو الاسم بكولمن `name` ووضع رو اللون بكولمن `color` ووضع رو الصوت بكولمن `sound`.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
مثال لتحديث معلومات رو معين بالكولمن:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
playerName = getPlayerName(thePlayer) -- اسم اللاعب&lt;br /&gt;
colorName = &amp;quot;Blue&amp;quot; -- لون الاسم&lt;br /&gt;
soundName = &amp;quot;sound.mp3&amp;quot; -- الصوت الخاص بالاسم&lt;br /&gt;
executeSQLQuery(&amp;quot;UPDATE players SET color='green',sound='somehead' WHERE name=?&amp;quot;, playerName ) -- تحديث الرو الخاص بإسم اللاعب وتعريف المعلومات عن طريق كتابة التعريف بجانب كل كولمن ليتم حفظه في رو اللاعب&lt;br /&gt;
executeSQLQuery(&amp;quot;UPDATE players SET color=?,sound=? WHERE name=?&amp;quot;, colorName, soundName, playerName ) -- تحديث الرو الخاص بإسم اللاعب وتعريف المعلومات عن طريق المعلومات التي جلبناها من قبل فوق&lt;br /&gt;
executeSQLQuery(&amp;quot;UPDATE `players` SET `color`=?,`sound`=? WHERE `name`=?&amp;quot;, colorName, soundName, playerName ) -- تحديث الرو الخاص بإسم اللاعب ولكن بجدول وكولمن مختلف&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
هذا المثال يعرض قائمة اللاعبين المسجلين في قاعدة البيانات والذين لدليهم اكثر عدد من المال.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function listPlayersWithMoreMoneyThan(thePlayer, command, amount) -- عمل وظيفة&lt;br /&gt;
    local players = executeSQLQuery(&amp;quot;SELECT id, name FROM players WHERE money &amp;gt; ?&amp;quot;, tonumber(amount)) -- اختيار اسم اللاعب من خلال اكثر عدد من المال المسجل في القاعدة وتعريفها بإسم players ليتم جلبها فيما بعد&lt;br /&gt;
    outputConsole(&amp;quot;Players with more money than &amp;quot; .. amount .. &amp;quot;:&amp;quot;, thePlayer)&lt;br /&gt;
    for i, playerdata in ipairs(players) do -- اختيار معلومات اللاعب من القاعدة المعرفة بإسم players&lt;br /&gt;
        outputConsole(playerdata.id .. &amp;quot;: &amp;quot; .. playerdata.name, thePlayer) -- اظهار رقم الرو و اسم اللاعب في اف8&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
addCommandHandler(&amp;quot;richplayers&amp;quot;, listPlayersWithMoreMoneyThan) -- كتابة الامر rechplayers لتشغيل الوظيفة&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This example shows the amount of money a certain registered player has.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function showPlayerMoney(thePlayer, command, playerName) -- عمل وظيفة&lt;br /&gt;
    local result = executeSQLQuery(&amp;quot;SELECT money FROM players WHERE name=?&amp;quot;, playerName) -- جلب عدد المال من قاعدة players من خلال الاسم&lt;br /&gt;
    if(#result == 0) then -- نتأكد اذا الجدول = 0&lt;br /&gt;
        outputConsole(&amp;quot;No player named &amp;quot; .. playerName .. &amp;quot; is registered.&amp;quot;, thePlayer) -- يرسل ب اف8 للاعب ان اسم اللاعب ليس مسجل&lt;br /&gt;
    else -- اذا الجدول لا يساوي 0&lt;br /&gt;
        outputConsole(&amp;quot;Money amount of player &amp;quot; .. playerName .. &amp;quot; is &amp;quot; .. result[1].money, thePlayer) -- يكتب اسم اللاعب وعدد المال المسجل في القاعده لديه&lt;br /&gt;
    end -- انهاء التحقق&lt;br /&gt;
end -- انهاء الوظيفة&lt;br /&gt;
addCommandHandler(&amp;quot;playermoney&amp;quot;, showPlayerMoney) -- كتابة الامر playermoney لتشغيل الوظيفة&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice the lack of single quotes around the &amp;quot;?&amp;quot; in this example, even though it represents a string. executeSQLQuery will see that the playerName variable is a string and take care of the correct execution of the query by itself.&lt;br /&gt;
&lt;br /&gt;
The advantage of using executeSQLQuery is that it is immune to users trying to exploit the query with an SQL injection attack. playerName may contain special characters like ', &amp;quot; or -- that will not influence the query, unlike the older approach where playerName would be concatenated into the query string.&lt;br /&gt;
&lt;br /&gt;
By: [Abdo Nour]&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
{{Registry_functions}}&lt;br /&gt;
&lt;br /&gt;
[[ru:executeSQLQuery]]&lt;/div&gt;</summary>
		<author><name>Abdo Nour</name></author>
	</entry>
</feed>