Оператор вставки из сценария php в mysql: база данных не читает инструкцию вставки - PullRequest
0 голосов
/ 12 апреля 2011

Так что все, вплоть до оператора вставки, работает отлично. Я знаю, что база данных соединяется, потому что я могу выбрать информацию из базы данных с помощью первых двух операторов. Я также знаю, что execute_statment3 работает, потому что ошибки не распечатываются, и когда он помещается в sql, оператор вставляется так, как и должно быть. Поэтому проблема лежит где-то в связи между скриптом и phpmyadmin. Пожалуйста, помогите, я уже два дня смотрю на эту проблему и схожу с ума.

<?php

session_start();

$hostname = 'localhost';
$username = '####';
$password = '####';


$connection = mysql_connect($hostname, $username, $password) 
or die ('Connection error!!!');


$database = '####';
mysql_select_db($database);  


$uid = $_SESSION['ID'];  
$album = $_POST['albumname'];  
$description = $_POST['description'];  
$filename = $_FILES["upload_file"]["name"];  
$filetype = $_FILES["upload_file"]["type"];
$filesize = $_FILES["upload_file"]["size"];
$file_on_server = $_FILES["upload_file"]["tmp_name"];  


if ($filetype == "image/jpeg") {  
    $file_copy_name = date(m.d.y_H.i.s) . ".jpg";  
        copy($file_on_server, "uploads/" . $file_copy_name);  


    print "<br>";  
    print "<img src = \"uploads/$file_copy_name\">";    


    print "<br>";  
    $ret = system("pwd");  


    $picture = "uploads/$file_copy_name";  
}


$execute_statement = "SELECT * FROM ImageAlbums WHERE Album = '$album'";


$results = mysql_query($execute_statement) or die ('Error executing SQL statement!!!');


while($item = mysql_fetch_array($results))


{ 
  $album2 = $item['Album'];
}

if ($album2 == $album)


{
    $execute_statement2 = "SELECT * FROM ImageAlbums WHERE Album = '$album'";


    $results2 = mysql_query($execute_statement2) or die ('Error executing SQL statement2!!!');


        while ($row2 = mysql_fetch_array($results2)) {


        $AID = $row2["AlbumID"];
        }


    $execute_statement3 = "INSERT INTO Images (`ImageID`, `AlbumID`, `Description`, `Extensions`) VALUES ('NULL', '$AID', '$description', '$file_copy_name')";      


    ($execute_statement3) or die ('Error executing SQL statement3!!!');

}


print "<br>";
print "<br>";
print $execute_statement3;
print "<br>";
print "<br>";
print $AID;
print "<br>";
print "<br>";
print $picture;


?>

Я использую две базы данных для этого сценария, одна из баз данных называется ImageAlbums и имеет два столбца с именами AlbumID и Album (AlbumID является первичным ключом). Вторая таблица называется Images и имеет четыре столбца ImageID (первичный ключ), AlbumID (внешний ключ), Description и Extensions.

Ответы [ 2 ]

1 голос
/ 12 апреля 2011

Вы не запустили оператор

($execute_statement3) or die ('Error executing SQL statement3!!!');

Попробуйте:

mysql_query($execute_statement3);

Также убедитесь, что вы экранировали все переменные.

0 голосов
/ 12 апреля 2011

убедитесь, что у пользователя, с которым вы соединяетесь в скрипте php, есть привилегии для операторов вставки.Вы могли бы использовать пользователя БД только с избранными привилегиями ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...