You are here: Re: [PHP] Problems with PHP and MySQL « PHP « IT news, forums, messages
Re: [PHP] Problems with PHP and MySQL

Posted by Bruce Douglas on 02/05/05 20:16

sarah...

rather than deal with classes/objs... (at least initially)

just create a simple php/mysql app that sets up the user/passwd/host for the db, and see if you can do a successful mysql_connect.... check the return/error codes to see if the call/code works

this will quickly tell you if you actually have php/mysql setup properly...

once you've done this... you can get into the guts of your app, to determine where the prob is....

-bruce


-----Original Message-----
From: Sarah <weregirl@vitamortalis.org>
Sent: Feb 5, 2005 7:41 AM
To: php-general@lists.php.net
Subject: [PHP] Problems with PHP and MySQL

Hi,

I'm relatively new to PHP, but have already written a few functional
web-based scripts. I recently decided to implement a MySQL-based system,
but hit the following problem...

I have PHP version 5.03, and MySQL v 4.19. I downloaded and compiled
both, and both work perfectly alone. However, when I run a command-line
app to manipulate my database, I get the following error:

__________________________________________________________________________
veep@tinsel:~# ./useradmin -a -u unclebulgaria -p uberwomble
constructor called

Fatal error: Call to undefined function mysql_connect() in
veep/useradmin on line 16

Fatal error: Call to undefined function mysql_close() in /veep/useradmin
on line 22
veep@tinsel:~#
__________________________________________________________________________


You might think 'Aah! the doofus has forgotten to link MySQL into the
compiled PHP interpreter'.

However, my phpinfo() page gives the following information:

__________________________________________________________________________
Configure command:

'./configure' '--with-apxs2=/opt/apache/sbin/apxs' '--prefix=/usr'
'--sysconfdir=/etc/php5' '--with-dba' '--with-db4' '--with-auth'
'--with-zlib' '--with-tiff' '--with-jpeg' '--with-mysql=/usr'
__________________________________________________________________________

And...

__________________________________________________________________________

MySQL-related data:

mysql
MySQL Support enabled
Active Persistent Links 0
Active Links 0
Client API version 4.1.9
MYSQL_MODULE_TYPE external
MYSQL_SOCKET /tmp/mysql.sock
MYSQL_INCLUDE -I/usr/include/mysql
MYSQL_LIBS -L/usr/lib -lmysqlclient

Directive Local Value Master Value
mysql.allow_persistent On On
mysql.connect_timeout 60 60
mysql.default_host localhost localhost
mysql.default_password wurms wurms
mysql.default_port 3306 3306
mysql.default_socket no value no value
mysql.default_user wiggly wiggly
mysql.max_links Unlimited Unlimited
mysql.max_persistent Unlimited Unlimited
mysql.trace_mode Off Off
_________________________________________________________________________


Finally, the client program is:

_________________________________________________________________________

#!/usr/bin/php
<?php

class UserDB
{
static $user='wiggly';
static $pass='wurms';
static $db='multimedia_access';

private $m_link;
private $m_live;

function __construct()
{
print("constructor called\n");
$this->m_link = mysql_connect('localhost', self::$user, self::$pass);
$this->m_live = mysql_select_db(self::db);
}

function __destruct()
{
mysql_close($this->m_link);
print("destructor called");
}

function Add($u, $p)
{
$H = md5($u, true);
// $R = mysql_query("INSERT INTO users (userkey, user, password)
values ($H, $u, $p)", $this->m_link);
$S = mysql_real_escape_string("INSERT INTO users (userkey, user,
password) values ('$H', '$u', '$p')", $this->m_link);
$R = mysql_query($S, $this->m_link);
if (!$R)
{
printf("SQL query error during Add operation\n");
}
return $R;
}

function Delete($u)
{
$H=md5($u, true);
$R=mysql_query("DELETE FROM users WHERE userkey=$H");
if ($R)
{
$R=mysql_query("DELETE FROM iplist WHERE userkey=$H");
}
if (!$R)
{
printf("SQL query error during Add operation\n");
}
return $R;
}

function Replace($u, $p)
{
return 0;
}

function Tabulate()
{
$R=mysql_query("SELECT user,password FROM TABLE users");
if (!$R)
{
printf("SQL query error during List operation\n");
}

$N=mysql_num_rows($R);

if ($N > 0)
{
while($Row = mysql_fetch_row($R))
{
foreach($Row as $K => $V)
{
$Col = mysql_field_name($R ,$K);
printf("%s='%s', ", $Col, $V);
}
printf("\n");
}
}
return $R;
}
}

function Usage($text)
{
printf("useradmin:\n\tuseradmin (-a|-d|-r) -u <user name> -p
<password>\n\n");
printf("\t-a - add given user.\n");
printf("\t-d - delete given user.\n");
printf("\t-r - replace given user.\n");
printf("\t-l - list all users and passwords in the database.\n");
printf("\n\t%s\n\n", $text);
exit(0);
}

function do_add($u, $p)
{
$D=new UserDB();

return $D->Add($u, $p);
}

function do_del($u)
{
$D=new UserDB();

return $D->Delete($u);
}

function do_rep($u, $p)
{
$D=new UserDB();

return $D->Replace($u, $p);
}

function do_list()
{
$D=new UserDB();

return $D->Tabulate();
}

function main()
{
$password='';
$username='';

$command['a']=false;
$command['d']=false;
$command['r']=false;
$command['l']=false;

$cmdcount=0;

$opt = getopt("ladru:p:h");

foreach ($opt as $k => $v)
{
switch($k)
{
case 'h':
Usage("Help information.");
break;
case 'p':
if ($v)
{
$password=$v;
}
break;
case 'u':
if ($v)
{
$username=$v;
}
break;
case 'a':
$command[$k]=true;
$cmdcount += 1;
break;
case 'd':
$command[$k]=true;
$cmdcount += 1;
break;
case 'r':
$command[$k]=true;
$cmdcount += 1;
break;
case 'l':
$command[$k]=true;
$cmdcount += 1;
break;
default:
}
}

if ($cmdcount > 1)
{
Usage("You may specifiy no more than one command at a time");
}
else if ($cmdcount < 1)
{
Usage("You must specify one of add, delete, replace");
}

if ($command['a'] == true)
{
if ($username == false || $password == false)
{
Usage("You must specify the username and password when adding an user");
}
do_add($username, $password);
}
else if ($command['r'] == true)
{
if ($username == false || $password == false)
{
Usage("You must specify the username and password when replacing an
user");
}
do_del($username);
}
else if ($command['d'] == true)
{
if ($username == false)
{
Usage("You must specify the username when deleting an user");
}
else if ($password != false)
{
Usage("The password is superfluous for the delete comand");
}
do_rep($username, $password);
}
else if ($command['l'] == true)
{
if ($username != false || $password != false)
{
Usage("Superfluous arguments given to the list command");
}
do_list($username, $password);
}

exit(0);
}

main();

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация