MySQL Forums
Forum List  »  PHP

Re: PHP UPDATE passes a blank string instead of contents of variable
Posted by: Cane Kostovski
Date: July 27, 2015 06:15PM

Peter Brawley Wrote:
-------------------------------------------------------
> > Peter asked me to do a debug
>
> Please, "Peter" not "Pete".
>
> Perhaps this would have been a better way to stub
> out that array:
>
> foreach( $_FILES['imgs']['tmp_name'] as $key =>
> $tmp_name )
> echo "key:$key tmp_name:$tmp_name<br />";
>
> IAC did you expect $_FILES['imgs']['tmp_name'] to
> have one populated row and a dozen blanks?*************YES
>
> > SQLFILE Contents before the query are:
> > UPDATE `animals` SET `img1` = 'summer2.jpg'
> WHERE `id` = 44
>
> Does that query have the expected result? *****************YES
>
> All the other array entries are empty, what result
> did you expect? ****************One Picture and 15 blanks
>
> BTW, surrounding scalar values with {} in double
> quotes strings is unnecessary.************I took them out...thanks

Here are the results of the changes:

Array
(
[0] => /tmp/phpKbYpzn
[1] =>
[2] =>
[3] =>
[4] =>
[5] =>
[6] =>
[7] =>
[8] =>
[9] =>
[10] =>
[11] =>
[12] =>
[13] =>
[14] =>
)

key:0 tmp_name:/tmp/phpKbYpzn
File_Name Contents are: summer2.jpg
SQLFILE Contents before the query are: UPDATE `animals` SET `img1` = 'summer2.jpg' WHERE `id` = 44
Database updated with SQL: UPDATE `animals` SET `img1` = 'summer2.jpg' WHERE `id` = 44 and MySQL Error: .

key:1 tmp_name:
File number 2 not changed.
key:2 tmp_name:
File number 3 not changed.
key:3 tmp_name:
File number 4 not changed.
key:4 tmp_name:
File number 5 not changed.
key:5 tmp_name:
File number 6 not changed.
key:6 tmp_name:
File number 7 not changed.
key:7 tmp_name:
File number 8 not changed.
key:8 tmp_name:
File number 9 not changed.
key:9 tmp_name:
File number 10 not changed.
key:10 tmp_name:
File number 11 not changed.
key:11 tmp_name:
File number 12 not changed.
key:12 tmp_name:
File number 13 not changed.
key:13 tmp_name:
File number 14 not changed.
key:14 tmp_name:
File number 15 not changed.

And here is the code:
  //Images
if (isset($_FILES['imgs']['tmp_name'])){
	$name = $_POST['name'];
	echo "<pre>";
	print_r( $_FILES['imgs']['tmp_name'] );
	echo "</pre>"; 
	foreach($_FILES['imgs']['tmp_name'] as $key => $tmp_name ){
		echo "key:$key tmp_name:$tmp_name<br />"; 
		$file_name = $_FILES['imgs']['name'][$key];
		$file_size = $_FILES['imgs']['size'][$key];
		$file_tmp = $_FILES['imgs']['tmp_name'][$key];
		$file_type = $_FILES['imgs']['type'][$key];
	$desired_dir = "../animal_images/$name/";
	if (!is_dir($desired_dir)) {
		if (mkdir($desired_dir)) {
			echo "The directory: " . $desired_dir . " has been created.<br />";
		}else{
			echo "The directory: " . $desired_dir . " has NOT been created.<br />";
		}
	}
        move_uploaded_file($file_tmp,$desired_dir.$file_name);
	$num = $key + 1;
	$imgnum = "img$num";
	if ($file_name == "") {
	    echo "File number $num not changed.<br />";
	}else{
	echo "File_Name Contents are: $file_name <br />";
	$sqlfile = "UPDATE `animals` SET `$imgnum`  = '$file_name'  WHERE `id` = $id";
	echo "SQLFILE Contents before the query are: $sqlfile <br />"; 
	$result = mysqli_query($con,$sqlfile) or trigger_error("Query Failed! SQL: $sqlfile - Error: ".mysqli_error(), E_USER_ERROR);
	if (!$result) {
	  echo "<h1>Could not successfully run query ($sqlfile) from DB: " . mysqli_error() . "</h1>";
	  exit;
	}else{
	      echo "Database updated with SQL: " . $sqlfile . " and MySQL Error: " . mysqli_error() . ".<br /><br />";
	    }
	}
	}
}

Options: ReplyQuote




Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.