tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

Otazníky v query → chyba syntaxe

před 9 lety

prebijak
Člen | 21

Verze dibi: 1.3-dev (revision 1f438fa released on 2010–10–06)

Verze PHP: 5.3.2–1ubuntu4.5

Zkoušel jsem i dibi 1.2 a minified a na hostingu, ale vrací stejný výsledek.

Mezi hvězdičkou a FROM mám mezeru, ale v chybovém hlášení jsou otazníčky.

Chybové hlášení:

Fatal error: Uncaught exception ‚DibiDriverException‘ with message ‚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 ' FROM pages WHERE id = 'home'' at line 1‘ in /home/uzivatel/fi/data/inc/dibi/drivers/mysql.php:165 Stack trace: #0 /home/uzivatel/fi/data/inc/dibi/libs/DibiConnection.php(341): DibiMySqlDriver->query(‚SELECT *??FROM …‘) #1 /home/uzivatel/fi/data/inc/dibi/libs/DibiConnection.php(251): DibiConnection->nativeQuery(‚SELECT *??FROM …‘) #2 /home/uzivatel/fi/data/inc/dibi/dibi.php(298): DibiConnection->query(Array) #3 /home/uzivatel/fi/index.php(13): dibi::query(‚SELECT *??FROM …‘, ‚home‘) #4 {main} SQL: SELECT * FROM pages WHERE id = ‚home‘ thrown in /home/uzivatel/fi/data/inc/dibi/drivers/mysql.php on line 165

PHP Kód:

<?php
define('INCLUDED', true);
$pagename = (isset($_GET["page"])&&!empty($_GET["page"]))?$_GET["page"]:"home";
require "data/data.php";

require_once 'data/inc/Nette/Debug.php';
require_once "data/inc/dibi/dibi.php";
require_once "data/inc/themes.php";
dibi::connect($dibiconfig);
$pagedata = dibi::query("SELECT * FROM [pages] WHERE [id] = %s", $pagename);
$pagedata = $pagedata->fetchAll();
$pagedata = $pagedata[0];
include "data/template/index.php";
?>

Netušíte čím by to mohlo být způsobeno? Díky za případné odpovědi.

Editoval prebijak (11. 10. 2010 22:00)

před 9 lety

Milo
Nette Core | 1119

dibi::test( "SELECT * FROM [pages] WHERE [id] = %s", $pagename ); ukáže co? Prohlídnul bych si zdroják v nějakém HEX editoru, jestli tam editor nenacpal nějaké bílé znaky místo mezery.

před 9 lety

prebijak
Člen | 21

Milo napsal(a):

dibi::test( "SELECT * FROM [pages] WHERE [id] = %s", $pagename ); ukáže co? Prohlídnul bych si zdroják v nějakém HEX editoru, jestli tam editor nenacpal nějaké bílé znaky místo mezery.

Díky za pomoc v hex editoru bylo C2 A0 na místo 20.