PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > php.general > MySQL upload problem
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
MySQL upload problem

Réponse
 
LinkBack Outils de la discussion
Vieux 11/09/2007, 16h34   #1
tedd
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut MySQL upload problem

Hi gang:

I know that this is not a php question, but all of you are so smart I
thought would ask anyway.

I need to upload a 5 Meg sql file to a client's database. However,
his site's phpMyAdmin shows a maximum file size limit of 2 Meg.

Now, is this something that is controlled by his host, or is there a
way for me to get around it without requiring his host to do
something, or what? How can I do this?

Advice sought.

Cheers,

tedd
--
-------
http://sperling.com http://ancientstones.com http://earthstones.com
  Réponse avec citation
Vieux 11/09/2007, 16h46   #2
Stut
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [PHP] MySQL upload problem

tedd wrote:
> I know that this is not a php question, but all of you are so smart I
> thought would ask anyway.
>
> I need to upload a 5 Meg sql file to a client's database. However, his
> site's phpMyAdmin shows a maximum file size limit of 2 Meg.
>
> Now, is this something that is controlled by his host, or is there a way
> for me to get around it without requiring his host to do something, or
> what? How can I do this?


Manually break the SQL file into several pieces. You may need to
duplicate some statements at the top and tail of the main file in each
part and also make sure that you duplicate any USE DATABASE statements
to ensure you're on the right DB.

You'll also need to make sure you execute them on the server in order.

-Stut

--
http://stut.net/
  Réponse avec citation
Vieux 12/09/2007, 01h50   #3
tedd
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [PHP] MySQL upload problem

At 4:46 PM +0100 9/11/07, Stut wrote:
>tedd wrote:
>>I know that this is not a php question, but all of you are so smart
>>I thought would ask anyway.
>>
>>I need to upload a 5 Meg sql file to a client's database. However,
>>his site's phpMyAdmin shows a maximum file size limit of 2 Meg.
>>
>>Now, is this something that is controlled by his host, or is there
>>a way for me to get around it without requiring his host to do
>>something, or what? How can I do this?

>
>Manually break the SQL file into several pieces. You may need to
>duplicate some statements at the top and tail of the main file in
>each part and also make sure that you duplicate any USE DATABASE
>statements to ensure you're on the right DB.
>
>You'll also need to make sure you execute them on the server in order.
>
>-Stut


-Stut:

This is a relational dB and the several times that I have attempted
to load it in "in parts" has met with failure.

I was thinking that I could ftp the sql file to the clients server
and then run a php script on his server, something like:

$sql = "mysql -h$dbhost -u$dbuser -p$dbpass $dbname < $filename";
system($sql);

But, that didn't work -- however -- using mysqldump did download the
file. So, I'm close.

I know that safe_mode is ON, but I'm not sure if that's what's
causing the failure or something else.

There has to be a simple way to do this.

Cheers,

tedd

--
-------
http://sperling.com http://ancientstones.com http://earthstones.com
  Réponse avec citation
Vieux 12/09/2007, 02h07   #4
Chris
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [PHP] MySQL upload problem

tedd wrote:
> At 4:46 PM +0100 9/11/07, Stut wrote:
>> tedd wrote:
>>> I know that this is not a php question, but all of you are so smart I
>>> thought would ask anyway.
>>>
>>> I need to upload a 5 Meg sql file to a client's database. However,
>>> his site's phpMyAdmin shows a maximum file size limit of 2 Meg.
>>>
>>> Now, is this something that is controlled by his host, or is there a
>>> way for me to get around it without requiring his host to do
>>> something, or what? How can I do this?

>>
>> Manually break the SQL file into several pieces. You may need to
>> duplicate some statements at the top and tail of the main file in each
>> part and also make sure that you duplicate any USE DATABASE statements
>> to ensure you're on the right DB.
>>
>> You'll also need to make sure you execute them on the server in order.
>>
>> -Stut

>
> -Stut:
>
> This is a relational dB and the several times that I have attempted to
> load it in "in parts" has met with failure.


Split the database up per table - I have a perl script if you want it.

Upload each table separately.

--
Postgresql & php tutorials
http://www.designmagick.com/
  Réponse avec citation
Vieux 12/09/2007, 02h27   #5
brian
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [PHP] MySQL upload problem

tedd wrote:
> I was thinking that I could ftp the sql file to the clients server and
> then run a php script on his server, something like:
>
> $sql = "mysql -h$dbhost -u$dbuser -p$dbpass $dbname < $filename";
> system($sql);
>
> But, that didn't work -- however -- using mysqldump did download the
> file. So, I'm close.
>
> I know that safe_mode is ON, but I'm not sure if that's what's causing
> the failure or something else.
>


Just a thought: did you pass the full path for $filename?

Also, pass in a return var to read:

system($sql, $ret);

if ($ret === 0) { echo 'sucess'; }

Sorry, you'll have to hunt down the other return codes that MySQl might
send back.

If safe_mode is enabled, your command will be escaped with
escapeshellcmd() but that's about it.

If you can FTP it but can't get a shell is there any chance you could
convince an admin to run the script?

brian
  Réponse avec citation
Vieux 12/09/2007, 02h39   #6
Chris
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [PHP] MySQL upload problem

tedd wrote:
> At 4:46 PM +0100 9/11/07, Stut wrote:
>> tedd wrote:
>>> I know that this is not a php question, but all of you are so smart I
>>> thought would ask anyway.
>>>
>>> I need to upload a 5 Meg sql file to a client's database. However,
>>> his site's phpMyAdmin shows a maximum file size limit of 2 Meg.
>>>
>>> Now, is this something that is controlled by his host, or is there a
>>> way for me to get around it without requiring his host to do
>>> something, or what? How can I do this?

>>
>> Manually break the SQL file into several pieces. You may need to
>> duplicate some statements at the top and tail of the main file in each
>> part and also make sure that you duplicate any USE DATABASE statements
>> to ensure you're on the right DB.
>>
>> You'll also need to make sure you execute them on the server in order.
>>
>> -Stut

>
> -Stut:
>
> This is a relational dB and the several times that I have attempted to
> load it in "in parts" has met with failure.
>
> I was thinking that I could ftp the sql file to the clients server and
> then run a php script on his server, something like:
>
> $sql = "mysql -h$dbhost -u$dbuser -p$dbpass $dbname < $filename";
> system($sql);
>
> But, that didn't work -- however -- using mysqldump did download the
> file. So, I'm close.


Actually reading the php site:

http://php.net/system

With safe mode enabled, the command string is escaped with escapeshellcmd().

Then http://www.php.net/manual/en/functio...eshellcmd.php:

Following characters are preceded by a backslash: #&;`|*?~<>^()[]{}$\,
\x0A and \xFF.

So your < is being replaced with \< which is why it wouldn't work.

--
Postgresql & php tutorials
http://www.designmagick.com/
  Réponse avec citation
Vieux 12/09/2007, 02h51   #7
brian
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [PHP] MySQL upload problem

brian wrote:
> tedd wrote:
>
>> I was thinking that I could ftp the sql file to the clients server and
>> then run a php script on his server, something like:
>>
>> $sql = "mysql -h$dbhost -u$dbuser -p$dbpass $dbname < $filename";
>> system($sql);
>>
>> But, that didn't work -- however -- using mysqldump did download the
>> file. So, I'm close.
>>
>> I know that safe_mode is ON, but I'm not sure if that's what's causing
>> the failure or something else.
>>

>
> Just a thought: did you pass the full path for $filename?
>
> Also, pass in a return var to read:
>
> system($sql, $ret);
>
> if ($ret === 0) { echo 'sucess'; }
>
> Sorry, you'll have to hunt down the other return codes that MySQl might
> send back.
>
> If safe_mode is enabled, your command will be escaped with
> escapeshellcmd() but that's about it.
>
> If you can FTP it but can't get a shell is there any chance you could
> convince an admin to run the script?
>


Also, to be on the safe side, you might want to include
set_time_limit(0); in your script, also (if you can get system() to
work, that is).

brian
  Réponse avec citation
Vieux 12/09/2007, 03h10   #8
brian
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: [PHP] MySQL upload problem

Chris wrote:
> tedd wrote:
>>
>> I was thinking that I could ftp the sql file to the clients server and
>> then run a php script on his server, something like:
>>
>> $sql = "mysql -h$dbhost -u$dbuser -p$dbpass $dbname < $filename";
>> system($sql);
>>
>> But, that didn't work -- however -- using mysqldump did download the
>> file. So, I'm close.

>
>
> Actually reading the php site:
>
> http://php.net/system
>
> With safe mode enabled, the command string is escaped with
> escapeshellcmd().
>
> Then http://www.php.net/manual/en/functio...eshellcmd.php:
>
> Following characters are preceded by a backslash: #&;`|*?~<>^()[]{}$\,
> \x0A and \xFF.
>
> So your < is being replaced with \< which is why it wouldn't work.
>


Right. You could try mysqlimport to get around using the < instead.
Strip out all but the ddl statements (CREATE TABLE and friends) and
place them into separate files for each table. That is, name each file
for the table its data corresponds to. Upload the ddl stuff with
phpMyAdmin, then import the data with mysqlimport through your script.

However, i think you might need FILE privilege.

Instead of putzing around with your existing dump file to copy
everything out, you could import everything to a local database (if you
don't have it already) and dump out each table to a separate file.

brian
  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 12h27.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,14930 seconds with 16 queries