Ljudi imam vrlo ozbiljan problem.
Znaci ja sam pravio neku skriptu i kad dodjem do unosa u bazu
mysql_query("INSERT INTO skripte_tuts VALUES (NULL,'$ime','$email','$tezina','".$text."','$c','$cat')") or die("Query nije izvrsen! MySQL greska:<br />".mysql_error());
On mi javi gresku!
Evo kako ide Query za kreiranje tabele:
CREATE TABLE skripte_tuts (
id INT NOT NULL auto_increment,
autor VARCHAR(30) NOT NULL,
email VARCHAR(50) NOT NULL,
hard VARCHAR(50) NOT NULL,
text TEXT NOT NULL,
copyright VARCHAR(50) NOT NULL,
cat VARCHAR(50) NOT NULL,
PRIMARY KEY(id)
) TYPE=MyISAM;
Ja sam, da napomenem koristio GeSHi za highlightovanje sintakse (PHP koda,JSa,...) i numeraciju linija.
Znaci, ja znam koja je greska ali kako da zaobidjem je???
Vracena MySQL greska:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #FF0' at line 1
Znaci kao sto vidite, problem je u koriscenju " . Sad, kako to zaobici?
" mora da ostane jer highlight nece biti OK.
U kodu PHPa mislim da nista ne treba da se mjenja.
Stranica doadd.php za dodavanje tutoriala sadrzi sledeci kod:
<?php
require_once("../includes/config.php");
$ime = $_REQUEST['ime'];
$email = $_REQUEST['email'];
$tezina = $_REQUEST['hard'];
$cat= $_REQUEST['cat'];
$text = $_REQUEST['text'];
$agree = $_REQUEST['agree'];
$c = $_REQUEST['copyright'];
if(!$agree==0) {
echo "Niste prihvatili nase uslove! Zao mi je ali ovaj proces ne mozete nastaviti!";
die();
}
if(empty($ime) || empty($tezina) || empty($cat) || empty($text)) {
echo "Zahtevana polja (ime,tezina,kategorija,text) su prazni!";
die();
}
$text = stripslashes($text);
require("functions/bbcode.php");
require("functions/smiles.php");
require("functions/geshi.php");
if($cat=="php"){
$geshi = new GeSHi($text, "php");
}
elseif($cat=="mysql") {
$geshi = new GeSHi($text, "mysql");
}
elseif ($cat=="javascript") {
$geshi = new GeSHi($text, "javascript");
}
$geshi->enable_line_numbers(GESHI_FANCY_LINE_NUMBERS, 1);
// Ovo je za BBCode,smajlije, GeSHi...
$text = BBCode($text);
$text = emoticons($text);
$text = $geshi->parse_code();
// Sledece dvije linije koda su za Debuging. Ni str_replace ne pomaze!!!
//$text = str_replace("\"","\'",$text);
//echo $text;
mysql_query("INSERT INTO skripte_tuts VALUES (NULL,'$ime','$email','$tezina','".$text."','$c','$cat')") or die("Query nije izvrsen! MySQL greska:<br />".mysql_error());
?>
Kad mu ukljucim echo a iskomentarisem mysql_query(...); dobijam nesto tipa:

[Ovu poruku je menjao Neohacker dana 19.08.2006. u 21:18 GMT+1]








Problem sa ", MySQLom i PHPom! Kako ga rijesiti???