запрос вставки не работает в моей программе, но работает хорошо на вкладке mysql - PullRequest
0 голосов
/ 22 февраля 2012

Мой SQL-запрос вставки не работает в моей программе.Я распечатал запрос, а затем скопировал и вставил этот код на вкладку mysql в phpmyadmin, тогда он работает отлично.Любое тело, пожалуйста, помогите мне.

if ($_FILES["thumbnailimage"]["size"]>0 )
{
    $thumbnailkey = generateUniqueKey($tbl_uploads,"upload_key",12);
    $fkey = generateUniqueKey($tbl_uploads,"file_key",24);
    $folderkey = generateUniqueKey($tbl_uploads,"folderkey",28);
    $fname = substr($_FILES['thumbnailimage']['name'],0,strpos($_FILES['thumbnailimage']['name'],"."));
    $ext = getExtension($_FILES['thumbnailimage']['name']);
    $insertnewupload = "INSERT INTO ".$tbl_uploads." (upload_key,file_key,file_name,file_type,ext,folderkey,user_id,status,pkey) VALUES ";
    $insertnewupload.="('".$thumbnailkey."','".$fkey."','".$fname."','1','".$ext."','".$folderkey."','".$_SESSION['user_id']."','0','".$productkey."')";
    echo "<br>1=>".$insertnewupload;
//  $db->connect();
    $exec_insertnewitem = mysql_query($insertnewupload);

Это распечатанный положить

INSERT INTO tbl_uploads (upload_key,file_key,file_name,file_type,ext,folderkey,user_id,status,pkey) VALUES ('f958c38e5c31','9b6bd5118ec4a8456bcc46df','sunil','1','jpg','1c1a536fbdde4f24a219ada4c1c9','7','0','3b593aff92ce')

Ответы [ 3 ]

1 голос
/ 22 февраля 2012

Вы цитируете числовые значения, к которым следует стремиться. Я добавил кавычки вокруг имен полей (я не могу вспомнить, если «статус» зарезервирован)

INSERT INTO `tbl_uploads` (
    `upload_key`,
    `file_key`,
    `file_name`,
    `file_type`,
    `ext`,
    `folderkey`,
    `user_id`,
    `status`,
    `pkey`
) 
VALUES (
    'f958c38e5c31',
    '9b6bd5118ec4a8456bcc46df',
    'sunil',
    '1',
    'jpg',
    '1c1a536fbdde4f24a219ada4c1c9',
    7,
    0,
    '3b593aff92ce'
)

Таким образом, будет достаточно следующей замены для строки, указывающей значения

$insertnewupload = "INSERT INTO `".$tbl_uploads."` (`upload_key`,`file_key`,`file_name`,`file_type`,`ext`,`folderkey`,`user_id`,`status`,`pkey`) VALUES ";
$insertnewupload.="('".$thumbnailkey."','".$fkey."','".$fname."','1','".$ext."','".$folderkey."',".$_SESSION['user_id'].",0,'".$productkey."')";

В качестве дополнения, вероятно, будет несколько комментариев о том, что вы должны использовать функции mysqli_ или PDO вместо mysql_. В настоящее время вы потенциально уязвимы для внедрения SQL-кода с помощью такого метода создания запроса.

0 голосов
/ 22 февраля 2012

Всегда старайтесь писать запрос mysql следующим образом.

 $query = "INSERT INTO tablename (`upload_key`,`file_key`,`file_name`,`file_type`,`ext`,`folderkey`,`user_id`,`status,pkey`) VALUES ('f958c38e5c31','9b6bd5118ec4a8456bcc46df','sunil','1','jpg','1c1a536fbdde4f24a219ada4c1c9','7','0','3b593aff92ce')";
 $check = mysql_query($query);

проверить, если var_dump ($ check); возвращает true или false ..

0 голосов
/ 22 февраля 2012

Могут быть серьезные причины ... Вы проверили, что подключаетесь к правильной базе данных? Может быть, добавить имя базы данных перед "tbl_uploads", например, "mybase.tbl_uploads"

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