IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: mysqli procedural v php

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
apotekil
Člen
Avatar
apotekil:25.11.2015 17:19

Prosím vás o pomoc pri vkladaní hodnôt do $sql nepriamo.

$sql = ('INSERT INTO users (name) VALUES(?)', $_POST['name']);
$result = mysqli_query($conn,$sql);

Vžy keď to spustím na webe vyhodí my to error:

Parse error: syntax error, unexpected ',' in /var/www/html/section/register.php on line 21

Skúšal som už veľa vecí aj som si prezrel turialy ale niak my to nefunguje.
Poďla mňa ide o to že php-čku sa niak nechce vložiť tam tú $_POST hodnotu nepriamo, pričom existuje a obsahuje aj reťazec.
Za rady vopred ďakujem.

Odpovědět
25.11.2015 17:19
Nerozmýšľaj ako sa to nedá, proste tvor. A čo tvoriť ? To je úplne jedno, nápady prídu postupne.
Avatar
Tonda Kozák
Člen
Avatar
Tonda Kozák:25.11.2015 19:34

Nemůžeš uložit do proměnné to, co se tam v prvním řádku snažíš uložit. Krom toho mysqli ani nepodporuje takovéhle nepřímé vkládání proměnné - co já vím.
Takže to musíš udělat pěkně:

$sql = ('INSERT INTO users (name) VALUES ('.mysqli_real_escape_string($conn, $_POST['name'])).')';
$result = mysqli_query($conn,$sql);
 
Nahoru Odpovědět
25.11.2015 19:34
Avatar
Tonda Kozák
Člen
Avatar
Tonda Kozák:25.11.2015 19:35

Oprava:

[$sql = 'INSERT INTO users (name) VALUES ('.mysqli_real_escape_string($conn, $_POST['name']).')';
$result = mysqli_query($conn,$sql);
/code]
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
25.11.2015 19:35
Avatar
apotekil
Člen
Avatar
Odpovídá na Tonda Kozák
apotekil:25.11.2015 20:19

Takže to nemôžem urobiť oko v tomto článku http://www.itnetwork.cz/…at-z-tabulky

<?php

               require_once('Db.php');
               Db::connect('127.0.0.1', 'databaze_pro_web', 'root', '');
               if ($_POST)
               {
                       $datum = date("Y-m-d H:i:s", strtotime($_POST['datum_narozeni']));
                       Db::query('
                               INSERT INTO uzivatele (jmeno, prijmeni, datum_narozeni)
                               VALUES (?, ?, ?)
                       ', $_POST['jmeno'], $_POST['prijmeni'], $datum);

                       echo('<p>Byl jste úspěšně zaregistrován.</p>');
               }
               ?>

Alebo tam to upraví wrapper ?

Nahoru Odpovědět
25.11.2015 20:19
Nerozmýšľaj ako sa to nedá, proste tvor. A čo tvoriť ? To je úplne jedno, nápady prídu postupne.
Avatar
Tonda Kozák
Člen
Avatar
Tonda Kozák:25.11.2015 20:32

Ne a ano.
Můžeš to udělat tak, ale musíš použít i ostatní kód. Oni totiž používají PDO, ne mysqli.

 
Nahoru Odpovědět
25.11.2015 20:32
Avatar
apotekil
Člen
Avatar
Odpovídá na Tonda Kozák
apotekil:25.11.2015 21:28

nooo funguje to ........ len som tam doplnil ešte ""

Nahoru Odpovědět
25.11.2015 21:28
Nerozmýšľaj ako sa to nedá, proste tvor. A čo tvoriť ? To je úplne jedno, nápady prídu postupne.
Avatar
Tonda Kozák
Člen
Avatar
Odpovídá na apotekil
Tonda Kozák:25.11.2015 22:48

Jo, na tyhle uvozovky jsem zapomněl. Ty tam samozřejmě musí být.

 
Nahoru Odpovědět
25.11.2015 22:48
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.