Жазбаларды қосу және жою үшін SQL сұрауы. PHP кодын пайдаланып MySQL дерекқорында жазбаны қалай жасауға болады Sql PHP кестесіне жазба қосу

Автордан:Әй, әннің сөзін алып тастай алмайсың! Бірақ оларды жоюға, жаңартуға немесе басқаларды енгізуге болады. Ең бастысы, сөздер базаға енгізіледі. Бүгін біз сізге MySQL-де деректер қалай жазылатынын және ән дыбысталуы үшін оны қалай дұрыс жасау керектігін айтамыз!

phpMyAdmin арқылы жазбаларды қосу

MySQL ДҚБЖ басқаруға арналған phpMyAdmin қабығы дерекқор кестелеріне жаңа жазбаларды қосу үшін «жеңіл» функционалдылықты жүзеге асырады. Қарапайымдылығының арқасында ол жасыл «манекелер» үшін де, «жалқау» кәсіпқойлар үшін де өте қолайлы.

Кестеге жаңа ақпаратты енгізу үшін бағдарламаға әкімші құқығымен кіру керек. Содан кейін сол жақтағы тізімдерден қажетті мәліметтер базасы мен кестені таңдаңыз. Содан кейін жоғарғы мәзірде «Кірістіру» тармағына өтіңіз.

Осыдан кейін MySQL дерекқорында жазба жасау үшін келесі терезеде барлық бағандар үшін «Мән» өрісін толтырып, төменгі жағындағы «OK» түймесін басыңыз.

Жоғарыдағы скриншотта өзгертілетін «Жануарлар» кестесі екі бағаннан (өрістерден) тұратынын көре аласыз: идентификатор және атау. Екінші бөлім әрбір бағанның түрін көрсетеді. Бізге тек атау өрісі үшін мән енгізу керек, өйткені идентификатор бағаны негізгі кілт болып табылады және кесте жасалған кезде автоматты өсімге орнатылған. Бұл id өрісінің мәні алдыңғы бүтін мәнге 1 қосу арқылы MySQL арқылы автоматты түрде жасалатынын білдіреді.

MySQL-дегі деректер жазбаларының қай өрісі негізгі кілт екенін білу үшін phpMyAdmin-де мәзірге (тізімде сол жақта таңдалған кестемен) жоғарғы мәзірдің «Құрылым» қойындысына өтіңіз. Мұнда барлық кесте өрістерінің сипаттамасы, олардың түрі және қосымша сипаттамалары берілген.

SQL сұраулары арқылы деректерді кірістіру

Бірақ phpMyAdmin - бұл жай ғана қабық және нақты әкімшілер MySQL серверімен Құрылымдық сұрау тілі арқылы «сөйлейді». Яғни, олар онымен SQL тілінде «сөйлейді». Біз нағыз кәсіпқой болуға ұмтылатындықтан, қарастырылып жатқан тақырып аясында SQL командаларын зерттеуге аздап кірісеміз. Міне, «SQL» өрісіне енгізген сұрау, сіз сол дерекқорды жасайсыз:

CREATE TABLE Animal (id MEDIUMINT NOT NULL AUTO_INCREMENT, аты CHAR(30) NO NULL, PRIMARY KEY (id));

CREATE TABLE Animal (id MEDIUMINT NO NULL AUTO_INCREMENT ,

атауы CHAR (30) NULL ЕМЕС, БАСТАУЫШ КҮЙЕУ (id));

Кестені жасап, деректерді MySQL дерекқорына жазғаннан кейін («Кірістіру» қойындысы арқылы) бағдарлама идентификатор мәні 1 болатын жолдың жануарларға қосылғанын және редактор терезесінде сәл төменірек екенін хабарлайды Қабық біз үшін жасалған және дерекқор серверіне жіберілетін сұрау коды көрсетіледі.

Сұраныс коды:

INSERT INTO `my_db1`.`animal` (`id`, `name`) VALUES (NULL, "Cat");

INSERT INTO ` my_db1 ` . ` жануар ` ( ` id ` , ` атауы ` ) VALUES ( NULL , «Cat» );

Оны толығырақ зерттейік. SQL тілінде INSERT операторы кестеге жаңа жолды енгізу үшін қолданылады. Ол серверге көрсетілген мәндерді (VALUES (NULL, 'Cat')) дерекқор кестесіне (my_db1 . animal) идентификатор және атау өрістерінде енгізу керектігін айтады.

Идентификатор бағанының сандық мәнін көрсетпейтінімізді, бірақ NULL екенін ескеріңіз, өйткені біз бұл өріс үшін автотолтыруды (автокөбейту) «қосқанбыз».

PHP көмегімен жазбаны қалай енгізуге болады

Біз қарастырғанның бәрі негізгі әрекеттің «прелюдиясы» ғана, онда «Мәртебелі» PHP серверлік бағдарламалау тілі сахнаға шығады. Оның арқасында MySQL МҚБЖ ретінде Интернетте кеңінен тарады.
Дүниежүзілік тордың көп бөлігі осы екі интернет технологиясының қосындысына құрылған. Қайда қарасаңыз да, сіз оларды барлық жерде таба аласыз: заманауи CMS-те, «үйде жазылған» қозғалтқыштарда және серверде.

PHP MySQL-ге деректерді жазу үшін көптеген кіріктірілген функцияларды қамтамасыз ететіні таңқаларлық емес. Бірақ біз олардың ең маңыздыларына тоқталамыз. Міне, жануарлар кестесіне жаңа «жануарды» қосатын код. Егер сіз жеткілікті түрде тырыссаңыз, осылайша бүкіл үй жануарларын жинай аласыз :)

$con_str=mysql_connect("localhost", "root", "", "db1"); if(mysql_connect("localhost","root"))( echo "Сәлем!"; ) mysql_select_db("db1",$con_str); $query_str="INSERT INTO `db1`.`animal` (`id`, `name`) VALUES (NULL, "ит")"; mysql_query($query_str); mysql_close();

$con_str = mysql_connect ("localhost" , "root" , "" , "db1" );

if (mysql_connect("localhost" , "root" ) ) (

жаңғырық "Сәлеметсіз бе!!" ;

mysql_select_db("db1", $con_str);

$query_str= «`db1`.`animal` (`id`, `name`) МӘНДЕРІНЕ ЕНГІЗУ (NULL, «ит»)»;

mysql_query($query_str);

mysql_close();

Бұл кодты PHP файлына қойып, сервер жағына қою керек.

mysql_connect() функциясы арқылы MySQL дерекқор серверіне қосыламыз. Функция аргумент ретінде хостты, ДҚБЖ пайдаланушы атын, құпия сөзді және қосылатын дерекқордың атын алады. Бізде бос құпия сөз бар, себебі біз жергілікті (клиент) құрылғыда орнатылған серверді пайдаланып жатырмыз.

PHP арқылы MySQL дерекқорына жазудың барлық сипатталған мысалдарын көрсету үшін біз Денвердегі «джентльмен жинағын» қолдандық. Оған жергілікті Apache сервері, MySQL сервері, phpMyAdmin және бағдарлама кодын жасауға және сынауға арналған бірнеше басқа пайдалы құралдар кіреді.

Содан кейін логикалық if блогында дерекқор серверіне қосылуды тексердік. Осыдан кейін mysql_select_db() функциясында біз қосылатын дерекқорды белгіледік. mysql_query() функциясын пайдаланып, $query_str айнымалысында жазылған SQL сұрауын іске қостық. Ал соңында орнатылған байланыс жабылды (mysql_close() функциясы). Енді, егер біз мал шаруашылығына (жануарлар үстеліне) қарасақ, онда біз жаңа «үй жануарларын» табамыз.

Оны MySQL-ге жазу үшін PHP «мейірімділікпен» барлық қажетті функциялар жинағын қамтамасыз етті. Бағдарлама кодында SQL-ді пайдалану кезінде жаңадан бастағандар күйіп қалатын басты нәрсе - сұраулардың дұрыс жазылмауы, синтаксистің бұзылуы және қашып кететін таңбалардың (тырнақшалардың) ауысуы.

Басыңызда артық «сұр» шаш пайда болмас үшін phpMyAdmin арқылы сұраудың дұрыс жазылуын тексерген дұрыс. Ол үшін SQL кодын бағдарлама редакторына орналастырып, оны іске қосыңыз. Егер бірдеңе дұрыс болмаса, қолданба ант бере бастайды, қызыл хабарламаны көрсетеді және қатенің орнын көрсетеді.

Көріп отырғаныңыздай, MySQL көмегімен сіз өзіңіздің жеке менеджерлеріңізді «жинақтауға» және кез келген «әннің» сөздерін дұрыс өзгертуге болады. Ал PHP MySQL дерекқорына жазу үшін өте қолайлы, сондықтан біз сізге осы «керемет» бағдарламалау тілімен «жақын» достық орнатуға кеңес береміз!

Бұл оқулықта деректерді дерекқорға PHP сценарийлерінен тікелей енгізу жолын қарастырамыз.

SQL көмегімен деректерді енгізу

Деректер қорын және кестелерді жасау үшін SQL-ді пайдаланатындай дерекқорға деректерді кірістіру үшін SQL пайдаланасыз. SQL сұранысының синтаксисі:

Кесте атауына ЕНГІЗУ (1-баған, баған 2, ...) VALUES(1-мән,мән 2, ...)

Көріп отырғаныңыздай, бір SQL мәлімдемесінде бірнеше бағандарды үтірмен бөлінген тізімде көрсету арқылы жаңартуға болады. Бірақ, әрине, сіз тек бір баған мен бір мәнді де көрсете аласыз. Осы SQL мәлімдемесінде айтылмаған бағандар бос қалады.

Мысалы: Кестеге жаңа адамды енгізу

Бұл мысалда біз 18-сабақтағы дерекқорды қолданамыз. Біз дерекқорға адамды енгізгіміз келеді делік. Бұл болуы мүмкін Гус қазтелефон нөмірімен 99887766 және туған күні 1964-04-20 .

SQL мәлімдемесі келесідей болуы мүмкін:

$strSQL = "INSERT INTO адамдар(Аты,Тегі,Телефоны,Туған күні) VALUES("Gus","Goose","99887766 ","1964-04-20"");

Көріп отырғаныңыздай, SQL мәлімдемелері өте ұзақ болуы мүмкін және ізін жоғалту оңай болуы мүмкін. Сондықтан SQL операторын сәл басқаша жазған дұрыс:

strSQL = "Адамдарды INSERT INTO("; strSQL = strSQL. «Аты, »; strSQL = strSQL. «Тек,» strSQL = strSQL. «Телефон», strSQL = strSQL. «туу)»; strSQL = strSQL. "VALUES ("; strSQL = strSQL . ""Gus", "; strSQL = strSQL. ««Қаз», »; strSQL = strSQL. ""99887766", "; strSQL = strSQL. ""1964-04-20""); mysql_query($strSQL) немесе die(mysql_error());

Мұнда SQL операторы сөйлемді шағын бөліктерге бөліп, оларды айнымалыға біріктіру арқылы құрастырылады. $strSQL.

Іс жүзінде бір немесе басқа әдісті қолданудың айырмашылығы жоқ, бірақ үлкен кестелермен жұмыс істеу кезінде «қадағалау» мүмкіндігі өте маңызды болады, сондықтан ең қолайлы әдісті таңдаңыз.

Дерекқорға Gus Goose енгізу үшін келесі кодты қолданып көрейік:

Мәліметтер базасына мәліметтерді енгізу // Дерекқор серверіне қосылу mysql_connect("mysql.myhost.com", "user", "sesame") немесе өледі (mysql_error());// Дерекқорды таңдау mysql_select_db("mydatabase") немесе die(mysql_error()); //SQL операторын құру $strSQL = "адамдарға INSERT INTO("; $strSQL = $strSQL . «Аты, »; $strSQL = $strSQL . «Тек, »; $strSQL = $strSQL . «Телефон», $strSQL = $strSQL . «Туылған күні»; $strSQL = $strSQL . «ҚҰНДЫЛЫҚТАР(»; $strSQL = $strSQL . ""Гус", "; $strSQL = $strSQL . ««Қаз», »; $strSQL = $strSQL . ""99887766", "; $strSQL = $strSQL . ""1964-04-20""); // SQL операторы орындалды mysql_query($strSQL) немесе өледі (mysql_error()); //Қосылымды жабу mysql_close(); ?>

ДБ жаңартылды!



Пайдаланушы енгізген мәліметтерді дерекқорға сақтау

Сіз мұны істеу үшін 11-сабақтағыдай пішін жасауға болатынын және пішіндегі мәндерді SQL операторына енгізуге болатынын түсінген шығарсыз. Сізде қарапайым пішін бар делік:

Бұл пішін файлға жіберіледі insert.php, мұнда сіз, 11-сабақта көрсетілгендей, пішін мазмұнын сұрау арқылы пайдаланушы енгізуін ала аласыз. Бұл нақты жағдайда SQL мәлімдемесі келесідей болуы мүмкін:

strSQL = "INSERT INTO people(FirstName) мәндерін("" . $_POST["FirstName"] . "")"

Сол сияқты, сіз cookie файлдарынан, сұрау жолының сеанстарынан және т.б. деректерді сұрауға болады.

Бастауыштардың ең жиі кездесетін қателері

Бастапқыда дерекқорды жаңартуға әрекеттенген кезде қате туралы хабарлар алуыңыз мүмкін. Мәліметтер қорымен жұмыс істегенде қателерге мүлде жол берілмейді. Қате үтір дерекқор жаңартылмағанын білдіруі мүмкін және сіз қате туралы хабар аласыз. Төменде біз ең жиі кездесетін қателерді сипаттаймыз.

Деректер түрі жарамсыз

Бағанның деректері мен деректер түрі бір-біріне сәйкес келуі маңызды. Әрбір баған белгілі бір типтегі деректерді қамтуы мүмкін. Келесі скриншот біздің мысалдағы «адамдар» кестесінің деректер түрлерін көрсетеді.

Мысалы, деректер өрісіне мәтінді немесе санды кірістіруге әрекеттенсеңіз, қате жіберіледі. Сондықтан деректер түрін мүмкіндігінше дәл орнатыңыз.

Ең көп таралған деректер түрлері төменде келтірілген:

Мағынасы Деректер түрі Өлшем
CHR
Мәтін немесе мәтін мен сандар комбинациясы. Сондай-ақ есептеулерде пайдаланылмайтын сандар үшін де пайдалануға болады (мысалы, телефон нөмірлері). 255 таңбаға дейін - немесе "Ұзындықта" көрсетілген ұзындық
МӘТІН
Мәтіннің үлкен блоктары немесе мәтін мен сандар комбинациясы. 65 535 таңбаға дейін
INT
Математикалық есептеулерге арналған сандық мәліметтер. 4 байт
КҮН
ЖЖЖ-АА-КК пішіміндегі күндер 3 байт
TIME
Сс:мм:сс пішіміндегі уақыт 3 байт
DATETIME
ЖЖЖ-АА-КК сағ:мм:сс пішіміндегі күн мен уақыт 8 байт

Тырнақшалары немесе кері қиғаш сызықтары бар SQL мәлімдемелері

Жалғыз тырнақша ("), қос тырнақша (") немесе кері қиғаш сызық (\) таңбалары бар мәтінді кірістіруге әрекеттенсеңіз, жазба дерекқорға кірістірілмейді. Шешім дерекқор сұрауларына енгізілген кезде мнемонизациялануы тиіс таңбалардың алдындағы кері қиғаш сызықтарды ауыстыру болады.


Сабақ негізінде болады кері байланыс формасы, кез келген дерлік веб-сайтта қажет.

Бірінші қадам: ішінде мәліметтер қорын құру MySQL

Ашылу phpMyAdmin(негізгі пакетке кіреді Денвер`a) және «деп аталатын дерекқорды жасаңыз. сынақ_базасы", кодтауды таңдаңыз" cp1251_general_ci".

Екінші қадам: ішінде кесте құру MySQLкөмегімен SQL сұрауы

Сіз, әрине, стандартты құралдарды пайдаланып кесте жасай аласыз phpMyAdmin, бірақ осылайша құрылатын кестенің құрылымы анық көрінеді.

деп аталатын кестені құру сынақ_кесте" және аталған алты өрісі бар:
«аты» - пайдаланушы аттары осында сақталады;
«электрондық пошта» - мұнда пайдаланушының электрондық пошта мекенжайлары сақталады;
«тақырып» - хабарлама тақырыбы осында сақталады;
«хабарлама» - хабарламалар осы жерде сақталады;
«деректер» - хабарлама жіберілген күн осында сақталады;
«id» - жазбаның сәйкестендіру нөмірі (жол), кілттік өріс.

SQL сұрауы:
кестені жасау test_table(
id int(11) null емес auto_increment,
varchar атауы (255) нөл емес,
email varchar(255) нөл емес,
varchar тақырыбы (255) нөл емес,
хабарлама мәтіні нөл емес,
деректер күні нөл емес,
бастапқы кілт (идентификатор)
);

Үшінші қадам: Пішін құру

index.html:

Пішін MySQL-де сақталған

MySQL жүйесінде деректер сақталатын пішіннің мысалы

























Сұраныс жіберу
Аты:
Электрондық пошта:
Хабар тақырыбы:
Хабар:


























Төртінші қадам: Пішін өңдеушісін жасау» save_form.php«қабылданған деректерді сақтай отырып MySQL

save_form.php:





/* Деректер сақталатын MySQL кестесі */
$кесте = "сынақ_кесте";

/* Қосылым жасау */

/* Ағымдағы күнді анықтаңыз */
$cdate = күн ("Y-m-d");

/* Кестеге ақпаратты кірістіру үшін сұраныс жасаймыз
аты...дата – мәліметтер қорындағы нақты өрістердің аты;
$_POST["test_name"] ішінде... $_POST["test_mess"] - бұл айнымалылар */ пішінінен алынған деректерді қамтиды
$query = "INSERT INTO $table SET name="".$_POST["test_name"].", email="".$_POST["test_mail"].",
theme="".$_POST["test_theme"].", message="".$_POST["test_mess"].", data="$cdate"";

/* Қосылымды жабыңыз */
mysql_close();

/* Сақтау сәтті болса, хабарлама мен қайтару сілтемесін көрсетіңіз */
жаңғырық("


Деректер сәтті сақталды!



қайту
");

Бесінші қадам: Сақталған деректерді көрсету» view_data.php"

view_data.php:

/* Дерекқорға қосылу */
$hostname = "localhost"; // сервер аты/жолы, MySQL көмегімен
$username = "root"; // пайдаланушы аты (Денверде әдепкі «түбір»)
$password = ""; // пайдаланушы құпия сөзі (Денверде әдепкі бойынша құпия сөз жоқ, бұл параметрді бос қалдыруға болады)
$dbName = "test_base"; // дерекқор атауы


$кесте = "сынақ_кесте";

/* Қосылым жасау */
mysql_connect($hostname, $username, $password) немесе die("Байланыс жасау мүмкін емес");

/* Дерекқорды таңдаңыз. Қате орын алса, оны көрсетіңіз */
mysql_select_db($dbName) немесе өледі (mysql_error());

/* Біз «name», «email», «theme» өрістерінен деректерді шығару үшін сұраныс жасаймыз,
"хабарлама", "деректер" кестелері "test_table" */
$query = "Идентификаторды, атауды, электрондық поштаны, тақырыпты, хабарламаны, $ кестеден деректерді ТАҢДАҢЫЗ";

/* Сұранысты орындаңыз. Қате орын алса, оны көрсетіңіз. */


жаңғырық("

MySQL жүйесінен деректерді шығару

MySQL кестесінен бұрын сақталған деректерді шығару










");



жаңғырық»

\n";
жаңғырық» \n";
жаңғырық» \n";
жаңғырық» \n";
жаңғырық» \n";
жаңғырық» \n";
жаңғырық» \n\n";
}

жаңғырық("

# өтініш берілген күні Пайдаланушы аттары Пайдаланушылардың электрондық поштасы Хабар тақырыбы Пайдаланушы хабарламалары
".$row["id"]."".$row["data"]."".$row["name"]."".$row["email"]."".$қатар["тақырып"]."".$row["message"]."
\n");

/* Қосылымды жабыңыз */
mysql_close();

Алтыншы қадам: Дерекқордан жазбаларды жою» del_data.php"

del_data.php:

/* Дерекқорға қосылу */
$hostname = "localhost"; // сервер аты/жолы, MySQL көмегімен
$username = "root"; // пайдаланушы аты (Денверде әдепкі «түбір»)
$password = ""; // пайдаланушы құпия сөзі (Денверде әдепкі бойынша құпия сөз жоқ, бұл параметрді бос қалдыруға болады)
$dbName = "test_base"; // дерекқор атауы

/* Деректер сақталатын MySQL кестесі */
$кесте = "сынақ_кесте";

/* Қосылым жасау */
mysql_connect($hostname, $username, $password) немесе die("Байланыс жасау мүмкін емес");

/* Дерекқорды таңдаңыз. Қате орын алса, оны көрсетіңіз */
mysql_select_db($dbName) немесе өледі (mysql_error());

/* Егер жою сілтемесі басылса, жазбаны жойыңыз */
$del = $query = "$кестеден жою (id="$del"");
/* Сұранысты орындаңыз. Қате орын алса, оны көрсетіңіз. */
mysql_query($query) немесе die(mysql_error());



/* Сұранысты орындаңыз. Қате орын алса, оны көрсетіңіз. */
$res = mysql_query($query) немесе die(mysql_error());

$жол = mysql_num_rows($res);

/* Кестеден мәліметтерді шығару */
жаңғырық("

MySQL жүйесінен деректерді шығару және жою

MySQL кестесінен бұрын сақталған деректерді шығару және жою











");

/* Нақты өрістердің деректер базасынан мәліметтерді шығару циклі */
ал ($жол = mysql_fetch_array($res)) (
жаңғырық»

\n";
жаңғырық» \n";
жаңғырық» \n";
жаңғырық» \n";
жаңғырық» \n";
жаңғырық» \n";
жаңғырық» \n";
/* Өрісті жою үшін сілтеме жасау */
жаңғырық» \n";
жаңғырық»\n";
}

жаңғырық("

# өтініш берілген күні Пайдаланушы аттары Пайдаланушылардың электрондық поштасы Хабар тақырыбы Пайдаланушы хабарламалары Жою
".$row["id"]."".$row["data"]."".$row["name"]."".$row["email"]."".$қатар["тақырып"]."".$row["message"]."Жою
\n");

/* Қосылымды жабыңыз */
mysql_close();

Жетінші қадам: Дерекқордағы жазбаларды өңдеу және жаңарту» update_data.php"

update_data.php:

/* Дерекқорға қосылу */
$hostname = "localhost"; // сервер аты/жолы, MySQL көмегімен
$username = "root"; // пайдаланушы аты (Денверде әдепкі «түбір»)
$password = ""; // пайдаланушы құпия сөзі (Денверде әдепкі бойынша құпия сөз жоқ, бұл параметрді бос қалдыруға болады)
$dbName = "test_base"; // дерекқор атауы

/* Деректер сақталатын MySQL кестесі */
$кесте = "сынақ_кесте";

/* Қосылым жасау */
mysql_connect($hostname, $username, $password) немесе die("Байланыс жасау мүмкін емес");

/* Дерекқорды таңдаңыз. Қате орын алса, оны көрсетіңіз */
mysql_select_db($dbName) немесе өледі (mysql_error());

/* Өңдеу түймесі басылған болса, өзгертулер енгізіңіз */
егер(@$submit_edit) (
$query = "ЖАҢАРТУ $кесте ЖИНАСЫНЫҢ атауы = "$test_name", email="$test_mail", theme="$test_theme", message="$test_mess" WHERE id="$update"";
/* Сұранысты орындаңыз. Қате орын алса, оны көрсетіңіз. */
mysql_query($query) немесе өлу (mysql_error());
}

/* Біз бүкіл дерекқорды $res айнымалысына қоямыз */
$query = "$кестеден * ТАҢДАУ";
/* Сұранысты орындаңыз. Қате орын алса, оны көрсетіңіз. */
$res = mysql_query($query) немесе die(mysql_error());
/* Мәліметтер қорындағы жазбалар санын біліңіз */
$жол = mysql_num_rows($res);

/* Кестеден мәліметтерді шығару */
жаңғырық("

Мәліметтерді өңдеу және жаңарту

MySQL кестесіндегі деректерді өңдеу және жаңарту


");

/* Нақты өрістердің деректер базасынан мәліметтерді шығару циклі */
ал ($жол = mysql_fetch_array($res)) (
жаңғырық»

\n";
жаңғырық» \n";
жаңғырық» \n";
жаңғырық» \n";
жаңғырық» \n";
жаңғырық»\n";
жаңғырық» \n";
жаңғырық»\n";
жаңғырық» \n";
жаңғырық»\n";
жаңғырық» \n";
жаңғырық»\n";
жаңғырық» \n";
жаңғырық»\n";
жаңғырық» \n";
жаңғырық»
#".$row["id"]."
".$row["data"]."
Қолданушының аты:
Пайдаланушының электрондық поштасы:
Хабар тақырыбы:
Хабар:
\n\n";
}

/* Қосылымды жабыңыз */
mysql_close();

Міне, бәрі бақытты кодтау: 1133:

_________________________________

Пікірлер блогтан жылжытылды

СЕРГЕЙ
14.09.2016 01:25
Қайырлы күн!
Мені келесі сұрақ қызықтырады: деректер базасын пайдаланбай, деректер мен бағдарлама параметрлерін сақтауды ұйымдастырудың ең оңай жолы қандай? Мен MySQL немесе Access-ке байланысты болғым келмейді..

ADMIN
14.09.2016 22:14
Сәлеметсіз бе!

Properties.Параметрлер
App.Config
XML файлы
сериялау
Тізімнен осылардың бірін таңдап көріңіз.

НИКОЛАЙ
16.09.2016 02:28
Сәлеметсіз бе, dataGridVIew ішіндегі таңдалған жолды dataGridVIew және phpMyAdmin ішінен қалай жоюға болады?

PhpMyAdmin? Бұл жай ғана дерекқормен жұмыс істеуге арналған қабық, түсіндіре аласыз ба?

НИКОЛАЙ
18.09.2016 02:24
Таңдалған жолды DataGridView және дерекқордан жою қажет.

ADMIN
19.09.2016 сағат 07:00
Mysql дерекқорындағы жолды қалай жоюға болады - мақала қосылды.

НИКОЛАЙ
20.09.2016 09:20
Үлкен рахмет.

DIMA
20.09.2016 10:24
Сәлеметсіз бе, бұл әдісті DataGridView арқылы емес, ComboBox арқылы жүзеге асыруға болады ма? Егер солай болса, қалай? Рақмет сізге.

ADMIN
22.09.2016 03:21
Сәлеметсіз бе. Мысалы:

ГЕННАДИ
22.09.2016 18:25
Неліктен мұндай мәтінді System.Windows.Forms.TextBox дерекқорына енгізуім керек, Text: ge

Айтпақшы, бұл (ge) соңында ол ген бойынша жазылған, тіпті мәтін кестенің параметрлерінде көрсетілген болса да, ген сөзі одан әрі сәйкес болуы керек, мен бұл кестені өзімнің бағдарламамда көрсетемін және ол шықты мен үшін осы қажетсіз мәтіннің барлығын көрсетеді

ADMIN
24.09.2016 04:17
Сірә, SQL сұрауы қате жазылған, мысалы:

TextBox1 атын енгізіңіз: Гена.

Sql сұранысы: «Кесте атауы мәндеріне кірістіру(textBox1, ..)»; Нәтиже: System.Windows.Forms.TextBox

Және мынаны өту керек: «Кесте атауы мәндерін кірістіру(textBox1.Text, ..)»;
Нәтиже: Гена

ГЕННАДИ
24.09.2016 18:41
Бұл солай. Рақмет сізге

СЕРГЕЙ
25.09.2016 11:51
Сәлеметсіз бе. TextBox арқылы дерекқорға қосуды қалай жүзеге асыруға болады?

ADMIN
26.09.2016 20:53
Негізінде бәрі бірдей. Мысалы, ең соңғы мысалды алайық, оған қажет:

//параметрлерді жасаңыз және оларды жинаққа қосыңыз cmd.Parameters.AddWithValue("@Name", textBox1.Text); cmd.Parameters.AddWithValue("@LastName", textBox2.Text);

енді параметрлер: Аты мен Фамилия мәтіндік жәшіктерге енгізілген мәндерді алады және оларды дерекқорға тасымалдайды

ЛИНАРА
27.09.2016 17:45
Сәлеметсіз бе, dataGridVIew және phpMyAdmin ішінде жолды қалай таңдауға болады?

ADMIN
29.09.2016 02:06
Мен phpMyAdmin ішіндегі жолды қалай бөлектеу керектігін білмеймін. Ал, мысалы, dataGridView бағдарламасында мұны SelectionChanged оқиғасы арқылы жасауға болады.

P.S.H.
30.09.2016 03:48
2Линара:
Жолдарды осылай өңдегіңіз келсе, HediSQL құралын алыңыз, жолдарды конфигурациялаңыз және өзгертіңіз.

2admin
Қайырлы күн! Материалдар үшін рахмет - бәрі өте керемет)
Сұрақ: Мен деректерді келесі сұраумен қосамын (бұл сынақ):

String sql = «INSERT INTO пайдаланушылар (`FIO`, `Tour`, `Count`, `Cost`, `Date`, `Pasport`, `Туған`) VALUES ("Колян", "Мәскеу", "1+1 ", 1100, "2011-11-11", "1111 1111", "9.11.1900");";

Деректер дұрыс енгізілді, бірақ дерекқорда (mysql) кириллица алфавитінің орнына «????» шығады.

Visual Studio System.String - Юникод тізбегі екенін айтады.

Сондай-ақ тырысты:

ALTER DATABASE `test` COLLATE "koi8r_general_ci"; ALTER TABLE `users` COLLATE="koi8r_general_ci"; ALTER DATABASE `test` COLLATE "utf8_unicode_ci"; ӨЗГЕРТУ КЕСТЕСІ `users` COLLATE="utf8_unicode_ci";

Бірақ бұл көмектеспейді ...
Не қате болуы мүмкін? Әртүрлі VS және DB кодтаулары? Немесе не?
Маған нені оқуға/өзгертуге болатынын көрсете аласыз ба?
Рақмет сізге

ADMIN
01.10.2016 09:49
Сәлеметсіз бе.

Дерекқорда (және кестеде) салыстыру utf_general_ci болып табылады

Мұндай салыстыру бар ма? Мүмкін utf8_general_ci?

Әдетте олар Mysql дерекқорын utf8_general_ci салыстыруын таңдау арқылы жасайды, сондықтан кириллица әліпбиінде ешқандай проблемалар болмайды, егер, әрине, клиенттен серверге алаяқтар келмесе.

Салыстыру үшін COLLATION пайдаланылады, бірақ бұл жағдайда кодтау (таңбалар жинағы) маңызды. Сондықтан алдымен оның серверде дұрыс орнатылғанына көз жеткізу керек, мысалы, latin1 емес, utf8.

.net қосқышы арқылы қосылу кезінде (әдепкі бойынша) latin1 пайдаланылады, сондықтан кейде қосылым жолында utf8 кодтауын нақты көрсету қажет:

MySqlConnection миконы; mycon = new MySqlConnection("server=127.0.0.1;uid=vasya;pwd=123;database=test;Charset=utf8;"); //MySqlConnectionStringBuilder: mysqlCSB.CharacterSet = "utf8";

P.S.H.
10.01.2016 11:34
Сіз дұрыс айтасыз, мен өзімді сілеймін, utf8_general_ci!
Иә, бұл көмектесті, ;Charset=utf8;
Көп рақмет!

СЕРГИЯ
10.02.2016 11:02
Жұмыс үлгісі үшін рахмет. Сұрақ
Мен дерекқордың IP мекенжайын енгізгім келетін мәтіндік өріс жасадым, бірақ бұл деректерді мұнда қалай енгізу керектігін білмеймін.

Жол conStr = "server=@textBox2;user=test;" +
"деректер базасы = сынақ; құпия сөз = сынақ;";
Windows пішініндегі мәтіндік өрістерден деректерді осы дизайнға қалай енгізу керектігін айтыңыз...

ADMIN
10.03.2016 11:50
"[электрондық пошта қорғалған];user=...
Жалпы, мұндай жолдың орнына осы мақаладағыдай қасиеттерді немесе String.Format() әдісін қолданған дұрыс.

OLGA2203
15.05.2017 сағат 20:14

String Connect = “Сервер=127.0.0.1;Порт=3306;Дерекқор=база;Дерек көзі=localhost;пайдаланушы=түбір;”; MySqlConnection con = жаңа MySqlConnection(Connect); con.Open(); //Дерекқорға қосылым орнату. MySqlCommand cmd = жаңа MySqlCommand(); cmd.CommandText = @”INSERT INTO tovar (ID, Санат, Атау, Сауда белгісі, Баға, Фото, Өлшем, Түс, Материал, Сан) VALUES (@pr, @Category, @Name, @TradeMark, @Price, @Photo, @Size, @Color, @Material, @Count)”; cmd.Parameters.AddWithValue(“@pr”,санауыш); cmd.Parameters.AddWithValue(“@Category”, comboBox1.SelectedItem.ToString()); cmd.Parameters.AddWithValue(“@Name”, textBox1.Text); cmd.Parameters.AddWithValue(“@TradeMark”, textBox2.Text); cmd.Parameters.AddWithValue(“@Price”, Convert.ToInt32(textBox4.Text)); cmd.Parameters.AddWithValue(“@Photo”, textBox3.Text); cmd.Parameters.AddWithValue(“@Size”, textBox6.Text); cmd.Parameters.AddWithValue(“@Color”, textBox5.Text); cmd.Parameters.AddWithValue(“@Material”, textBox8.Text); cmd.Parameters.AddWithValue(“@Count”, Convert.ToInt32(textBox7.Text)); cmd.Connection = con; cmd.ExecuteNonQuery(); MessageBox.Show («Қосу сәтті болды», «Қосу сәтті болды», MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

«Идентификатор бағанының нөл болуы мүмкін емес» қатесі көрсетіледі, мен идентификатор бағанына қосымшаны алып тастаймын - келесі баған туралы бірдей нәрсе жазылған және т.б.
VALUES ішіне жақшадағы кез келген тұрақты мәндерді енгізсем, жол дерекқорға қосылады.
Айтыңызшы, мәселе неде? Пішін арқылы енгізілген деректер мен мәндерді дерекқорға дәл жазуым керек

Кейбір деректерді енгізу және жазу қажет болатын сайттың немесе веб-қосымшаның барлық модульдері (мысалы, аты, жасы, мекенжайы және т.б.) MySQL тіліндегі INSERT INTO `name_base` (аты, мән1, мән2) қарапайым функцияны пайдаланады. ) VALUES ('Вася ','1','2');

Барлық айнымалылар дерекқорға біз бірінші жақшаға орнатқан мәндерге сәйкес енгізіледі. Өңдеуші сценарийін, дерекқорды және конфигурация файлын кодтауды қарастыру маңызды. Ең көп таралған UTF-8 кодтауын қолданған жөн.

Дерекқорға екі жолмен жазуға болатынын ескеріңіз.

Бірінші жолегер бастапқыда деректер қоры кестелерінің ұяшық атын көрсетпесек. Содан кейін біз әрбір ұяшық үшін барлық айнымалы мәндерді, атап айтқанда дерекқор кестесінде қанша ұяшық бар екенін көрсетуіміз керек, сондықтан VALUE мәнінен кейін жақша ішінде көптеген айнымалылар тізімделуі керек.

Мысалы:
Дерекқор кестесінде төрт ұяшық бар. Бұл VALUE (..) элементінен кейін барлық төрт айнымалы жақша ішінде тізімделуі керек дегенді білдіреді. Және тағы бір нәрсе: егер айнымалы жоқ болса, оны қосымша параметр делік. Содан кейін біз жай ғана тырнақшаға бос мән жазамыз '',

""name_base" VALUES INTO INSERT INTO (NULL, `".$name."`,``,`2`)"; // үшінші бос мән тырнақшаға жазылады

Бірақ бұл сұраудың аздаған кемшіліктері бар. Дерекқор кестесіне бір немесе екі ұяшық қоссаңыз, бұл сұрау қатені қайтарады. Өйткені бұл әдісте сұраудағы барлық ұяшықтарды тізімдеу міндетті болып табылады.

Екінші жолегер INSERT INTO `name_base` (...) сұрауынан кейін дерекқор атауынан кейінгі барлық ұяшықтарды тізімдеңіз. Мысал жоғарыда талқыланды. Егер ұмытып қалсаңыз, қайта жазайық:

"INSERT INTO `name_base`(`name`,`value`,`value2`) VALUES (NULL, `".$name."`,``,`2`)";

Мұнда біз барлық ұяшықтарды тізімдедік (аты, мән1, мән2) . Ал егер дерекқор кестесіне қосымша екі ұяшық қоссаңыз, онда сұрау синтаксисін өзгерту қажет болмайды. Бірақ бір сұранысқа жаңадан жасалған ұяшықтар үшін қажет өте қосымша айнымалыларды бірден қосу қажет болмаса.

Бұл қате сайттағы кішкене өзгерістен кейін өте жиі орын алады. Әкімші мәліметтер базасына қосымша ұяшық қосты делік, статус делік. Бірақ сценарий процессорында модульді өзгертуге уақыт болмады немесе жай ұмытып кетті. Бірақ кейбір сайттардың құрылымы өте күрделі және қатені табу көп уақыт пен күш жұмсауы мүмкін. Сондықтан мәліметтер базасына жазудың екінші әдісін қолданған жөн. Мұндай қатені жаңадан келген веб-бағдарламашылар жиі жасайды.

MySQL дерекқорына Php жазбасы. Практикалық мысалдар

Сонымен, енді біз дерекқор сұрауларымен жұмыс істеу кезінде мәселенің мәніне жетеміз. Біз бәрін практикалық мысалдар арқылы жасаймыз. Сайтқа келушілер қалдыратын пікірлерді жазу үшін қарапайым сценарий жасайық.

Алдымен мәліметтер базасында төрт ұяшықтан тұратын кесте хабарламасын жасайық. Бірінші ұяшыққа түсініктеме идентификаторын жазамыз. Автоматты өсу параметрімен ұяшықтағы таңбалар саны он таңбаға дейін. Бұл автоматты параметр түсініктеме +1-ге қосылған сайын өзгереді.

Келесі ұяшық пайдаланушы аты болып табылады. Таңбалар саны - екі жүзге дейін - таңдауыңыз бойынша үш жүз таңба, char параметрі. Содан кейін түсініктеме ұяшығы - бұл ұяшыққа түсініктеме мәтінінің өзін енгіземіз. Егер сіз үлкен түсініктеме мәтіндерін жазғыңыз келсе, онда мәтін параметрін орнатуға болады - содан кейін сіз жай ғана үлкен мәтіндерді, бес жүз мыңнан астам таңбаларды енгізе аласыз немесе tinytext параметрін орната аласыз, содан кейін сәл аз таңбалар сәйкес келеді, бірақ ол болады. сәл жылдамырақ жұмыс жасаңыз.

Бірақ біздің жағдайда келушілер үлкен мәтіндер жазбайтынын есте ұстаймыз. Сондықтан біз өзімізді шектейміз және жол мәндерін жазу үшін varchar параметрімен екі мың таңбаны жазамыз.

Соңғы ұяшыққа түсініктеме мәтіні жазылған күнді жазамыз. Ағымдағы күн мен уақыт функциясын пайдаланып, сандық форматта секундтарда жазамыз(); Қарапайымдылық үшін функцияны $time=time() айнымалысына орнатамыз; Ал мәліметтер базасында ұяшық құрайық. Оны int параметрімен (сандық мәндер үшін) уақытпен бірдей атаумен атайық. Таңбалардың санын жазып көрейік - он бір жақсы (болашақ үшін шағын маржамен :-).

Дерекқордың демпі келесідей:

Кесте құрылымы `msg` -- БАР БОЛМАСА КЕСТЕНІ ЖАСАҢЫЗ `msg` (`id` int(10) NULL ЕМЕС AUTO_INCREMENT, `name` char(250) NULL ЕМЕС, `comment` varchar(2000) NULL ЕМЕС, `уақыт` int(11) НҰЛ ЕМЕС, БАСТАУЫШ КҮЙЕУ (`id`)) ENGINE=MyISAM ӘДІМДІ ТАҒАМ =utf8 AUTO_INCREMENT=1 ;

Міне, түсініктемелер кестесі жасалды. Енді біз түсініктеме жазу үшін пішінді және сценарий өңдеушінің өзін жазамыз. Түсініктеме пішінінің HTML коды төмендегідей.



Бөлісу