Ошибка в php

12
SEO-MAN
На сайте с 25.06.2007
Offline
187
1399

В php скрипте выскакивает ошибка, причем только на определенном хостинге:

DB SELECT query failed: 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 '' at line 1

А в файле том первые строки

<?php

header('Content-Type: text/html; charset: windows-1251');

require 'db.php';

require 'functions.php';

Форум сео (http://forum-seo.net) для новичков автоматическая регистрация в 30000 каталогах за 5$ (/ru/forum/157861) Нужна доработка 2 досок объявлений - avtopmr.net, pmrdom.com (вип объявления и удаление дублей)
nikhotin
На сайте с 24.05.2007
Offline
74
#1

не факт что ошибка в 1 строке т.к мускул обращается сначала к первой вот и ругается.

тут надо db.php смотреть

и еще какая версия мускула там где работает и где нет

Ничто не пугает нас страшнее всего,как одинокая маленькая девочка в белом платьице холодной осенней ночью на аллее рядом с кладбищем...
R
На сайте с 17.11.2011
Offline
22
#2

db.php

может там логин неверный

домашняя страница - google.com.ua
SK
На сайте с 31.08.2007
Offline
81
#3

Тут только что-то с настройками мускула, если работает на других хостах, или версия....

Нужен перенос информации? Информеры на сайт? Сграбить контент? Создать базу товаров? Изготовление любых парсеров! (/ru/forum/836197)
[umka]
На сайте с 25.05.2008
Offline
456
#4

А там рядышком не выдаётся сам запрос, который вызвал ошибку?

Если не выдаётся, то нужно найти то место, где он совершается, и сделать echo.

После этого, думаю, станет понятна причина ошибки.

Лог в помощь!
Хорс
На сайте с 14.12.2010
Offline
21
#5

Не посмотрев db.php, угадать в чём ошибка, не представляется возможным.

Кстати, у Вас есть ещё ошибка, не относящаяся к MySQL:

SEO-MAN:
header('Content-Type: text/html; charset: windows-1251');

Вряд ли браузеры знают о существовании HTTP заголовка 'charset' ;)

Правильно будет:

header('Content-Type: text/html; charset=windows-1251');
SEO-MAN
На сайте с 25.06.2007
Offline
187
#6

Кто может помочь (платно видимо) - отпишите в личку.

Я вот не знаю какие настройки мускула смотреть.

db.php

<?php

class OkiDb {
private $link;
private $prefix;

public function connect($host, $user, $pass, $dbname, $prefix = '', $names = null)
{
$this->link = mysql_connect($host, $user, $pass);
if (!$this->link) {
$this->dieError('Cannot connect to DB ' . mysql_error());
}
if (!mysql_select_db($dbname, $this->link)) $this->dieError('Cannot select DB');
if ($names != null) {
mysql_query('SET NAMES ' . $names, $this->link);
}
$this->prefix = $prefix;
}

private function dieError($msg = 'MySql Error')
{
die($msg . ': ' . mysql_error());
}

public function query($sql)
{
return mysql_query($sql, $this->link);
}

public function escape($str)
{
return mysql_real_escape_string($str, $this->link);
}

public function buildQuery($query, $args)
{
$i = 0;
if (!is_array($args)) $args = array($args);
while ($i < count($args) && ($pos = strpos($query, '?')) !== false) {
$repl = "'" . $this->escape($args[$i++]) . "'";
$query = substr_replace($query, $repl, $pos, 1);
}
return $query;
}

public function select($table, $cols = '*', $where = null, $order = null, $joins = null, $limit = null)
{
$sql = "SELECT $cols FROM {$this->prefix}$table";
if (is_array($where)) {
$sql .= ' WHERE ' . $this->buildQuery($where[0], $where[1]);
} else if ($where != null) {
$sql .= " WHERE $where";
}
if ($order != null) $sql .= " ORDER BY $order";
if ($limit != null) $sql .= " LIMIT $limit";
return $this->query($sql);
}

/**
* fetch all into associative array
* @return array
*/
public function fetchAll($table, $cols = '*', $where = null, $order = null, $joins = null, $limit = null)
{
$result = $this->select($table, $cols, $where, $order, $joins, $limit);
if ($result === false) $this->dieError('DB SELECT query failed');
$ret = array();
while (($row = mysql_fetch_assoc($result)) !== false) {
$ret[] = $row;
}
return $ret;
}

public function fetchRow($table, $cols = '*', $where = null, $order = null, $joins = null)
{
$result = $this->select($table, $cols, $where, $order, $joins, 1);
if ($result === false)
$this->dieError('DB SELECT query failed');
$ret = mysql_fetch_assoc($result);
return $ret;
}

public function fetchOne($table, $column = '*', $where = null, $order = null)
{
$row = $this->fetchRow($table, $column, $where, $order);
return $row !== false ? $row[$column] : false;
}

public function insert($table, array $data)
{
if (count($data) == 0) return false;

$fields = '(';
$values = 'VALUES (';
foreach ($data as $key => $value) {
$fields .= '`'.$key.'`,';
$values .= "'" . $this->escape($value, $this->link)."',";
}
$fields = substr($fields, 0, -1) . ')';
$values = substr($values, 0, -1) . ')';
$sql = "INSERT INTO {$this->prefix}$table $fields $values";
if ($this->query($sql) === false) return false;
return $this->insertId();
}

public function update($table, array $data, $where = null)
{
if (count($data) == 0) return false;

$set = '';
foreach ($data as $key => $value) {
$set .= "`$key`='" . $this->escape($value) . "',";
}
$set = substr($set, 0, -1); // remove last period (,)

$sql = "UPDATE {$this->prefix}$table SET $set";

if (is_array($where)) {
$sql .= ' WHERE ' . $this->buildQuery($where[0], $where[1]);
} else if ($where != null) {
$sql .= " WHERE $where";
}

return $this->query($sql);
}

public function insertId()
{
return mysql_insert_id($this->link);
}
}
webinteger
На сайте с 13.10.2007
Offline
110
#7
You have an error in your SQL syntax;

- php тут не причем, нужно смотреть конфиг mysql или искать проблемный sql

> PHP & mySQL написание и доработка скриптов Page 1 (/ru/forum/173281) Page 2 (/ru/forum/377616)
nikhotin
На сайте с 24.05.2007
Offline
74
#8

А файл целиком?

а то <?php не закрыто

edogs software
На сайте с 15.12.2005
Offline
775
#9

ошибка в mysql запросе в строке 1, а не в php в строке 1.

В приведенном Вами коде поменяйте


return mysql_query($sql, $this->link);

на


$t=mysql_query($sql, $this->link);
if(mysql_error( $this->link)) echo mysql_error( $this->link).'='.$sql;
return $t;

и запустите. Увидите не только саму ошибку, но и запрос который к ней привел - будет понятнее.

Если хотите - стучите в асю, платно можем решить вопрос, а не просто дать совет..

Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
C
На сайте с 04.02.2005
Offline
291
#10

а какая версия mysql на сервере?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий