загрузить файл (имя по идентификатору) - PullRequest
0 голосов
/ 15 сентября 2011

Я хочу загрузить файл с помощью своего php, мой код выглядит так:

$hasil = mysql_query("select ID from userownfile order by ID DESC");
$dt = mysql_fetch_array($hasil);
$old_id = substr($dt['ID'],2);

$newId = $old_id[0] + 1;

$base = $_REQUEST['image'];
$filename = $newId . ".jpg";
$buffer = base64_decode($base);
$path = "img/" . $filename . ".jpg";
$handle = fopen($path, 'wb');
$numbytes = fwrite($handle, $buffer);
fclose($handle);
$conn = mysql_connect("localhost","root","");
mysql_select_db("db_bloodglucose");
$sql = "insert into userownfile(ID, file) values('" . $newId . "','" . $path . "')";
$r = mysql_query($sql);

при первой загрузке я успешно загрузил файл с именем 1.jpg, но когда яхочу загрузить второй раз и т. д., он не обнаружился в моей базе данных, он продолжает показывать 1.jpg, интересно, почему число не увеличилось .. кто-нибудь может мне помочь?спасибо, прежде чем

я изменил свой код следующим образом:

<?php

$hasil = mysql_query("select ID from userownfile order by ID DESC");
$dt = mysql_fetch_array($hasil);
$old_id = substr($dt['ID'],2);

$newId = mysql_insert_id() + 1;

$base = $_REQUEST['image'];
$filename = $newId . ".jpg";
$buffer=base64_decode($base);
$path = "img/".$filename.".jpg";
$handle = fopen($path, 'wb');
$numbytes = fwrite($handle, $buffer);
fclose($handle);
$conn=mysql_connect("localhost","root","");
mysql_select_db("db_bloodglucose");
$sql = "insert into userownfile(ID, file) values('" . $newId . "','" . 

$path . "')";
$r=mysql_query($sql);
?>

но он остается на 1, число не увеличивается, кто-нибудь может мне помочь, пожалуйста?*

1 Ответ

0 голосов
/ 15 сентября 2011

Я предполагаю, что ошибка здесь:

$dt = mysql_fetch_array($hasil)
$old_id = substr($dt['ID'],2);
$newId = $old_id[0]+1;

может быть

$newId = $dt[0]+1;

или просто

$newId = $old_id+1;

Но гораздо лучше использовать mysql_insert_id который даст вам вставленную запись id , чтобы избежать проблем параллелизма.

...