[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не выполняется запрос
Страницы: 1, 2
maxis44
Добрый вечер. ПХП пока я знаю на уровне разбирания чужих кодов, с синтаксисом и логикой дружу пока не очень.


$query = mysql_query('INSERT INTO image (type,name,alt,img) VALUES ("' . $_FILES['userFile']['type'] . '","' . $_FILES['userFile']['name'] . '","' . $alt . '","' . $image . '")');
if (!mysql_query($query)) {
die('<p>Error writing image to database</p></body></html>');
}




Запрос не выполняется, выходит указанная ошибка. Имена точно эти, синтаксических ошибок валидатор не нашел.
За подсказку буду крайне признателен.
kirill1989
Попробуйте зайдите в phpmyadmin, и выполните там INSERT запрос, будет ли выполняться?
maxis44
user posted image

Да, через phpmyAdmin запрос выполняется, скопировал его из поста выше
inpost
В начале скрипта:
error_reporting(-1);
ini_set('display_errors',1);


Ну и сам запрос:
mysql_query("строка запроса") or die(mysql_error());

При запросе соблюдай следующие правила:
1) Для именования колонок и таблиц (имён) используй обратный аппостроф: `image`
2) Для добавления строчных данных обрабатывай переменную через mysql_real_escape_string($var).
3) Для числовых: (int)$var

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
maxis44
Добрый день тем кто снова сюда заглянет.
Скрипт до сих пор не запущен, хотя своими ньюфажескими ручонками я перекопал его вдоль и поперёк. Попробую снова поискать помощи здесь.
Код формы:
<form action="imageUpload.php" method="post" enctype="multipart/form-data">
<fieldset>
<legend>
Image Upload</legend>
<label
for="userFile">Small image to upload: </label>
<input
type="file" size="40" name="userFile" id="userFile"/><br />
<br />
<label
for="altText">Description of image</label>
<input
type="text" size="60" name="altText" id="altText"/><br />
<br />
<input
type="submit" name="picup" value="Upload File" />
</fieldset>
</form>

Код файла со скриптом, imageUpload.php
<?php mysql_connect('мойхост','юзер','пасс');
mysql_select_db('база');
error_reporting(-1);
ini_set('display_errors',1); ?>

<html><body>
<h1>
Uploading Images to MySQL</h1><p>
<?php

if ( !isset($_FILES['userFile']['type']) )
{
die('<p>No image submitted</p></body></html>');
}
?>
You submitted this file:<br /><br />
Temporary name: <?php echo $_FILES['userFile']['tmp_name'] ?><br />
Original name: <?php echo $_FILES['userFile']['name'] ?><br />
Size: <?php echo $_FILES['userFile']['size'] ?> bytes<br />
Type: <?php echo $_FILES['userFile']['type'] ?></p>

<?php

if (isset($_POST['picup'])) {

if ( !preg_match( '/gif|png|x-png|jpeg/', $_FILES['userFile']['type']) ) {
die('<p>Не тот формат</p></body></html>'); }
else if ( strlen($_POST['altText']) < 9 ) {
die('<p>Текст надобно подлиннее</p></body></html>'); }
else if ( $_FILES['userFile']['size'] > 160384 ) {
die('<p>Файл надобно помельче</p></body></html>'); }
// Copy image file into a variable
else if ( !($handle = fopen ($_FILES['userFile']['tmp_name'], "r")) ) {
die('<p>Error opening temp file</p></body></html>'); }
else if ( !($image = fread ($handle, filesize($_FILES['userFile']['tmp_name']))) ) {
die('<p>Error reading temp file</p></body></html>'); }
else {
fclose ($handle);
// Commit image to the database
$image = mysql_real_escape_string($image);
$alt = htmlentities($_POST['altText']);
$query = mysql_query ('INSERT INTO image (type,name,alt,img) VALUES ("$_FILES['userFile']['type']","$_FILES['userFile']['name']","$alt","$image")') or die(mysql_error());
if ( !mysql_query($query)) {
die('<p>Error writing image to database</p></body></html>');
} else {
die('<p>Image successfully copied to database</p></body></html>');
}
}
}

?>
</body></html>


При попытке выполнения (форма тут) браузер переходит на страницу скрипта, и остаётся белый экран.
Валидатор пхп говорит что "syntax error, unexpected 'userFile' (T_STRING)",
строка выглядит так
$query = mysql_query ('INSERT INTO image (type,name,alt,img) VALUES ("$_FILES['userFile']['type']", "$_FILES['userFile']['name']", "$alt", "$image")') or die(mysql_error()); 


Касательно предыдущего ответа - обратный апостроф всё уронил.
Спасибо за внимание.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.