Autor | Zpráva | ||
---|---|---|---|
danny98 Profil |
#1 · Zasláno: 21. 2. 2015, 13:43:58
Ahoj, napsal jsem script add.php
$value = mysql_real_escape_string($_POST['country']); $value2 = mysql_real_escape_string($_POST['station']); $value3 = mysql_real_escape_string($_POST['stream']); $value4 = mysql_real_escape_string($_POST['stream2']); $value5 = mysql_real_escape_string($_POST['web']); $value6 = mysql_real_escape_string($_POST['genre']); $value7 = mysql_real_escape_string($_POST['desc']); if ($_POST['license'] == 'value8'){ $sql = mysqli_prepare($conn, 'INSERT INTO `stations`(`station`, `country`, `stream`, `stream2`, `web`, `genre`, `desc`) VALUES (?, ?, ?, ?, ?, ?, ?)"); mysqli_bind_param($sql, "sssssss", $_POST['country'], $_POST['station'], $_POST['stream'], $_POST['stream2'], $_POST['web'], $_POST['genre'], $_POST['desc']); mysqli_execute($sql); Po nahrání na hosting a zkoušce, se mi v db neobjevila data :/ co prosím vás dělám blbě? |
||
mimochodec Profil |
#2 · Zasláno: 21. 2. 2015, 13:49:59
danny98:
Dotaz na ř. 10 začíná apostrofem, končí uvozovkami. |
||
Marschmallow Profil |
#3 · Zasláno: 21. 2. 2015, 13:51:09
danny98:
Apostrof. $value = mysql_real_escape_string($_POST['country']); $value2 = mysql_real_escape_string($_POST['station']); $value3 = mysql_real_escape_string($_POST['stream']); $value4 = mysql_real_escape_string($_POST['stream2']); $value5 = mysql_real_escape_string($_POST['web']); $value6 = mysql_real_escape_string($_POST['genre']); $value7 = mysql_real_escape_string($_POST['desc']); if ($_POST['license'] == 'value8'){ $sql = mysqli_prepare($conn, 'INSERT INTO `stations`(`station`, `country`, `stream`, `stream2`, `web`, `genre`, `desc`) VALUES (?, ?, ?, ?, ?, ?, ?)'); mysqli_bind_param($sql, "sssssss", $_POST['country'], $_POST['station'], $_POST['stream'], $_POST['stream2'], $_POST['web'], $_POST['genre'], $_POST['desc']); mysqli_execute($sql); |
||
lionel messi Profil |
danny98:
1. Nikde nevidím, že by si sa k db pripájal. 2. Máš syntaktickú chybu na riadkoch 10, resp. 11 ako už spomenul mimochodec. Na začiatku reťazca používaš na ohraničenie apostrof, na jeho konci zase úvodzovky, čo je neprípustné a skript vráti Parse error .
3. Funkcia mysqli_bind_param je od PHP 5.4.0 odstránená. Použi namiesto nej mysqli_stmt_bind_param a vhodné by bolo taktiež v rámci dodržiavania konvencie vymeniť mysqli_execute za jej alias mysqli_stmt_execute, podobne i mysqli_prepare za mysqli_stmt_prepare. 4. Ostáva mi záhadou, prečo používaš prepared statements a escapovanie pomocou mysql_real_escape_string, riadky 1–7 pokojne zmaž. |
||
danny98 Profil |
děkuju všem:)
lionel: připojování jsem kvůli datům odstranil a php konfiguraci mám na hostingu 5.3 |
||
lionel messi Profil |
#6 · Zasláno: 21. 2. 2015, 14:47:30
danny98:
„a php konfiguraci mám na hostingu 5.3“ Už v tejto verzii je zmienená funkcia označovaná ako zastaralá. |
||
danny98 Profil |
#7 · Zasláno: 21. 2. 2015, 14:56:46 · Upravil/a: danny98
po upravení add.php se mi stále do mysql nepřidávají řádky...
Kód: <?php $server="mysql.grendelhosting.com"; $user="************"; $password="******"; $database="*******"; $conn=mysqli_connect ($server, $user, $password, $database); $sql = mysqli_stmt_prepare($conn, 'INSERT INTO `stations`(`station`, `country`, `stream`, `stream2`, `web`, `genre`, `desc`) VALUES (?, ?, ?, ?, ?, ?, ?)'); mysqli_stmt_bind_param($sql, "sssssss", $_POST['country'], $_POST['station'], $_POST['stream'], $_POST['stream2'], $_POST['web'], $_POST['genre'], $_POST['desc']); mysqli_stmt_execute($sql); header("Location: index.php"); echo '<script type="text/javascript">'; echo 'alert("your station was added!")'; echo '</script>'; ?> je to syntaxe exportována přímo z mysql |
||
lionel messi Profil |
danny98:
Zmaž riadky 13–16 a napíš tam namiesto nich: if (mysqli_error($conn)) { echo "Chyba dotazu: ". mysqli_error($conn); } Kontroluješ ešte pred vložením, či boli dáta skutočne odoslané (najlepšie pomocou isset ($_POST['country'], $_POST['station'], $_POST['stream'], $_POST['stream2'], $_POST['web'], $_POST['genre'], $_POST['desc']) )?
|
||
danny98 Profil |
#9 · Zasláno: 21. 2. 2015, 15:21:57
vyskočilo toto:
Warning: mysqli_stmt_prepare() expects parameter 1 to be mysqli_stmt, object given in /home/u311461713/public_html/add.php on line 10 Warning: mysqli_stmt_bind_param() expects parameter 1 to be mysqli_stmt, null given in /home/u311461713/public_html/add.php on line 11 Warning: mysqli_stmt_execute() expects parameter 1 to be mysqli_stmt, null given in /home/u311461713/public_html/add.php on line 12 |
||
Časová prodleva: 10 let
|
0