execute statement containing for loop index not working

Problems with the Windows version of XAMPP, questions, comments, and anything related.

execute statement containing for loop index not working

Postby MikeSiencyn » 25. April 2021 20:18

Hi folks
I'm loading photo file names into the database for my wife's online vintage shop which I'm building.
The relevant bit of the php file which I've written to insert the file names into the database is:
for ($i = 1; $i < $n+1; $i++){
//create an INSERT statement to deal with photos
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo$i, $nextStockID));
} // end for
It works if I put individual variable names $photo1, $photo2 etc in the execute statement but when I leave $photo$i in the code it gives the error message:
Parse error: syntax error, unexpected '$i' (T_VARIABLE), expecting ')' in (filename) on line 86
I'd have thought that when the $i index runs through the allowed values it should pick out $photo1, $photo2 and so on.
I can't see where I'm going wrong and I've gone round and round in circles trying to find the answer.
I would be very grateful to be shown where I'm going wrong.
Many thanks
All the best
Mike
MikeSiencyn
 
Posts: 24
Joined: 02. February 2021 15:41
XAMPP version: 3.2.4
Operating System: Windows10

Re: execute statement containing for loop index not working

Postby cb » 25. April 2021 22:59

In
Code: Select all
$result = $stmt->execute(array($photo$i, $nextStockID));
you're not referring to the array index - trying to make a new variable out of the two

Think it should be
Code: Select all
$result = $stmt->execute(null,$photo[$i], $nextStockID);


You should also be able to move the prepare statement out of the loop. See https://www.w3schools.com/php/php_mysql ... ements.asp. May need the bind statement too. Could simplify it to initially get it working to take out the prepare/execute statements and just have standard mysql to insert into the db
cb
cb
 
Posts: 36
Joined: 11. June 2008 22:48

Re: execute statement containing for loop index not working

Postby MikeSiencyn » 26. April 2021 07:52

Just in case some more clarification is needed,
when I use the following code:
for ($i = 1; $i < 6; $i++){
//create an INSERT statement to deal with photos
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo1, $nextStockID));
} // end for
I get five separate but identical entries in the photos table of the file name photo1.jpg each with their own photoID (via autoincrement) and an identical stockID (i.e. the
particular stock item being entered has five photos). So, the $result = $stmt->execute(array($photo1, $nextStockID)); statement works - it presents an array of two items to correspond to the two ? placeholders. So, as the index $i runs through its values of 1 to 5 inclusive, five insertions of $photo1 are accomplished.
However, when I use the following code:
for ($i = 1; $i < 6; $i++){
//create an INSERT statement to deal with photos
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo$i, $nextStockID));
} // end for
instead of inserting $photo1, $photo2, $photo3, $photo4, $photo5 I get the error message given in my initial post.
I don't understand why the $i inside
$result = $stmt->execute(array($photo$i, $nextStockID));
is not interpreted as the rolling index specified in
for ($i = 1; $i < 6; $i++){
Does anyone happen to know why this is?
Many thanks
Mike
MikeSiencyn
 
Posts: 24
Joined: 02. February 2021 15:41
XAMPP version: 3.2.4
Operating System: Windows10

Re: execute statement containing for loop index not working

Postby Altrea » 26. April 2021 11:07

What you are searching for are variable variables, where you take a string and use it as variable name.
This is a really bad design for multiple reasons (especially testing and debugging purposes) and you should consider rewriting your code to avoid this completely.

What you need is already mentioned here. You need a multidimensional array you can iterate through and use the counter variable to access its values.
And the prepare statement should only be executed once for the whole array, so it needs to stand outside of the for loop.

Something like that:
Code: Select all
<?php
$photos 
= array(
    array('photofile' => 'filename1.jpg', 'stock_stockID' => 2),
    array('photofile' => 'filename2.jpg', 'stock_stockID' => 5),
    array('photofile' => 'filename4.jpg', 'stock_stockID' => 8),
    array('photofile' => 'filename8.jpg', 'stock_stockID' => 12),
    array('photofile' => 'filenameX.jpg', 'stock_stockID' => 13)
);

$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");

for ($i = 0; $i < 5; $i++) {
    $result = $stmt->execute(array($photos[$i]['photpfile'], $photos[$i]['stock_stockID']));
}


If you always want to insert the whole array, you can also use a foreach loop instead of the for loop, or count the photos array to get the max id for the loop
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: execute statement containing for loop index not working

Postby Nobbie » 26. April 2021 12:10

Actually, i do NOT like prepared SQL statements. They are similar to variable variables and its hard to read them, as you cannot see which columns are affected by the SQL execution. The tokens in the prepared SQL statements are not the real column names, these are only placeholders. That technique is a quite old technique and it was used to "save" time at execution, as you dont need to run the SQL interpreter for each SQL action. Prepared statements are kind of "compiled" statements, which need not to parsed any further. Many years ago parsing took quite CPU time.

But that is not an issue anymore for modern CPUs, these are so blazingly fast, they can render hig definition videos in seconds, running a simple SQL parser is not a task at all. If you do not use prepared statements, your code is much easier to read and to understand and it will definately not run any slower. Even thousands of SQL statements are parsed in fractions of a second. This time is definitely nothing at all compared to the time spent on the necessary I/O, if anything there is a bottleneck there, but prepared statements have no influence on that.

Therefore i recommend not to use prepared statements (especially as a beginner!), its obvious that you are struggling heavily and have deep understanding problems and prepared statements are making it even worse for you. Just my two cents....
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: execute statement containing for loop index not working

Postby MikeSiencyn » 26. April 2021 12:38

Hi folks
Thanks for all your contributions.
I use prepared statements to avoid the possibility of SQL injection attacks.
I've actually solved it (if very inelegantly) with a twelve-fold if statement which I've just tested and it actually works, which is all I care about.
My priority is that we (my wife and I) can straightforwardly upload into the database between 1 and 12 photos for each stock item.
The very ugly solution (which bothers me not one jot) I've opted for is:
//12-fold if statement to deal with photos
if ($n == 1){
//create an INSERT statement to deal with $photo1
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo1, $nextStockID));
} else {
if ($n == 2){
//create an INSERT statement to deal with $photo1&2
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo1, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo2, $nextStockID));
} else {
if ($n == 3){
//create an INSERT statement to deal with $photo1&2&3
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo1, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo2, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo3, $nextStockID));
} else {
if ($n == 4){
//create an INSERT statement to deal with $photo1&2&3&4
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo1, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo2, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo3, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo4, $nextStockID));
} else {
if ($n == 5){
//create an INSERT statement to deal with $photo1&2&3&4&5
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo1, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo2, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo3, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo4, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo5, $nextStockID));
} else {
if ($n == 6){
//create an INSERT statement to deal with $photo1&2&3&4&5&6
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo1, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo2, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo3, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo4, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo5, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo6, $nextStockID));
} else {
if ($n == 7){
//create an INSERT statement to deal with $photo1&2&3&4&5&6&7
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo1, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo2, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo3, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo4, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo5, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo6, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo7, $nextStockID));
} else {
if ($n == 8){
//create an INSERT statement to deal with $photo1&2&3&4&5&6&7&8
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo1, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo2, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo3, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo4, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo5, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo6, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo7, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo8, $nextStockID));
} else {
if ($n == 9){
//create an INSERT statement to deal with $photo1&2&3&4&5&6&7&8&9
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo1, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo2, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo3, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo4, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo5, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo6, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo7, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo8, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo9, $nextStockID));
} else {
if ($n == 10){
//create an INSERT statement to deal with $photo1&2&3&4&5&6&7&8&9&10
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo1, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo2, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo3, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo4, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo5, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo6, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo7, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo8, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo9, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo10, $nextStockID));
} else {
if ($n == 11){
//create an INSERT statement to deal with $photo1&2&3&4&5&6&7&8&9&10&11
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo1, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo2, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo3, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo4, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo5, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo6, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo7, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo8, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo9, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo10, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo11, $nextStockID));
} else {
if ($n == 12){
//create an INSERT statement to deal with $photo1&2&3&4&5&6&7&8&9&10&11&12
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo1, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo2, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo3, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo4, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo5, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo6, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo7, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo8, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo9, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo10, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo11, $nextStockID));
$stmt = $con->prepare("INSERT INTO photos (photoID, photofile, stock_stockID) VALUES(null, ?, ?)");
$result = $stmt->execute(array($photo12, $nextStockID));
} else {
print "<h2>too many photos!</h2>";
} // end if $n == 12
} // end if $n == 11
} // end if $n == 10
} // end if $n == 9
} // end if $n == 8
} // end if $n == 7
} // end if $n == 6
} // end if $n == 5
} // end if $n == 4
} // end if $n == 3
} // end if $n == 2
} // end if $n == 1
Thanks again for all your comments.
All the best
Mike
MikeSiencyn
 
Posts: 24
Joined: 02. February 2021 15:41
XAMPP version: 3.2.4
Operating System: Windows10

Re: execute statement containing for loop index not working

Postby Nobbie » 26. April 2021 15:48

Grauenhaft...
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: execute statement containing for loop index not working

Postby Altrea » 26. April 2021 16:08

MikeSiencyn wrote:I've actually solved it (if very inelegantly) with a twelve-fold if statement which I've just tested and it actually works, which is all I care about.

So basically you didn't care about any replies here, didn't follow any of the good recommandations given here. For no reason.
Sometimes it is best to just talk about something to solve a problem by yourself. That is the best way to learn something for sure.
But for me personally that means, that i do not put any effort and time in future topics because it is probably just a waste of time.
Just hoping this thread can be helpful for anybody else.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: execute statement containing for loop index not working

Postby MikeSiencyn » 26. April 2021 16:31

On the contrary, folks, I really value everyone's replies.
I agree with you, Nobbie, that my solution is terrible, but it does work.
And I agree with you, Altrea, that just talking/typing is really helpful.
I just knew I didn't have time to learn a whole new body of stuff, I've been teaching myself since last May and am really keen on just getting on with the site with whatever I have gleaned in that time.
So, danke bestens, alles.
All the best
Mike
MikeSiencyn
 
Posts: 24
Joined: 02. February 2021 15:41
XAMPP version: 3.2.4
Operating System: Windows10

Re: execute statement containing for loop index not working

Postby Nobbie » 26. April 2021 18:29

Altrea wrote:But for me personally that means, that i do not put any effort and time in future topics because it is probably just a waste of time.


+1
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04


Return to XAMPP for Windows

Who is online

Users browsing this forum: No registered users and 87 guests