Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.php > #14498
| From | Matthew Carter <m@ahungry.com> |
|---|---|
| Newsgroups | comp.lang.php |
| Subject | Re: Pulling ad-hoc data from a database into a PHP web page |
| Date | 2014-11-06 11:25 -0500 |
| Organization | Ahungry (http://ahungry.com) |
| Message-ID | <87h9ycxpm3.fsf@ahungry.com> (permalink) |
| References | <m3ef2b$u9h$1@dont-email.me> <m3erom$ri2$1@dont-email.me> <m3g44n$ve0$1@dont-email.me> <87oaskxriy.fsf@ahungry.com> <m3g6rd$bfv$1@dont-email.me> |
"James Harris" <james.harris.1@gmail.com> writes:
> "Matthew Carter" <m@ahungry.com> wrote in message
> news:87oaskxriy.fsf@ahungry.com...
>> "James Harris" <james.harris.1@gmail.com> writes:
>
> ...
>
>>> function scalar_get($key) {
>>> global $sv, $db, $un, $pw;
>>> echo "In function scalar_get($key)<br/>";
>>> echo "Make db connection to $db<br/>";
>>>
>>> $conn = mysqli_connect($sv, $un, $pw);
>>> if (!$conn) {
>>> die("Database connection failed: " . mysqli_connect_error());
>>> }
>>> echo "Database connected successfully<br/>";
>>>
>>> $sql = "select value from $db.scalars where id = \"$key\";";
>>> $result = mysqli_query($conn, $sql);
>>> if ($result === FALSE) {
>>> echo "Query ($sql) failed: " . mysqli_error($conn) . "<br/>";
>>> } elseif (mysqli_num_rows($result) !== 1) {
>>> echo "Expected one row, got " . mysqli_num_rows($result) . "<br/>";
>>> } else {
>>> echo "Got one row<br/>";
>>> $row = mysqli_fetch_row($result);
>>> echo "Result is ($row[0])<br/>";
>>> }
>>> }
>>>
>>> The idea is that a function like the above (but less verbose!) would be
>>> called an arbitrary number of times in the main body of a page by means
>>> of
>>> calls such as the following. At least for scalars I may get it to return
>>> the
>>> string instead of printing it.
>>>
>>> scalar_get("forename");
>>> echo "<br/>";
>>> scalar_get("surname");
>>> echo "<br/>";
>
> ...
>
>> I would either:
>> - Wrap the function in a class and store the DB connection as a class
>> variable
>> - Pass the connection as an additional parameter to the function
>> - If you insist on including a 'global' line in there, use the
>> connection as the global (instead of the name/pass etc.)
>
> Thanks. The latter sounds simple and is apparently something I already know
> how to do - because I've just tried it with string variables. It would also
> be sufficient for my needs just now.
>
> A query though: where is it best to have the PHP code which makes the
> database connection? Should it go
> * before the start of the page (such as before any initial <html> tag)
> * in the <head>...</head> section
> * at the top of the <body> section
> or does it not matter as long as the code to make the connection comes
> before the functions which use it?
>
>> Opening a database each time you want to do a single query is more
>> inefficient than opening and keeping open.
>>
>> Is your database going to be two column like this?
>>
>> --------------
>> | id | value |
>> --------------
>
> The table containing the scalars will be exactly like that. (As an aside I
> think of this as a table of key-value pairs and was going to use "key" as a
> column name but mysql objected so I had to change it to "id"; I guess that
> the former is a reserved word as it is used in other SQL contexts even
> though it is not valid in the select context I was using.)
>
>> If so, you could probably make 'id' your unique key and omit your elseif
>> clause in the row checking snippet (it seems like having duplicate ids
>> would break the manner in which you want to query this information).
>
> Understood. Yes, it is a unique key.
>
> James
>
>
I would establish your database connection first, define any functions
and then proceed to HTML output (and the function calls within there
when necessary) if not using a template system like Smarty etc.
You can get around reserved words in mysql via backticks, such as
referring to key as `key`, but to avoid confusion, sticking to
non-reserved words is normally easier.
--
Matthew Carter (m@ahungry.com)
http://ahungry.com
Back to comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Pulling ad-hoc data from a database into a PHP web page "James Harris" <james.harris.1@gmail.com> - 2014-11-06 00:23 +0000
Re: Pulling ad-hoc data from a database into a PHP web page Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-11-06 04:54 +0100
Re: Pulling ad-hoc data from a database into a PHP web page Jerry Stuckle <jstucklex@attglobal.net> - 2014-11-06 09:19 -0500
Re: Pulling ad-hoc data from a database into a PHP web page "James Harris" <james.harris.1@gmail.com> - 2014-11-06 15:39 +0000
Re: Pulling ad-hoc data from a database into a PHP web page Jerry Stuckle <jstucklex@attglobal.net> - 2014-11-06 11:32 -0500
Re: Pulling ad-hoc data from a database into a PHP web page "M. Strobel" <sorry_no_mail_here@nowhere.dee> - 2014-11-26 10:26 +0100
Re: Pulling ad-hoc data from a database into a PHP web page Tim Streater <timstreater@greenbee.net> - 2014-11-26 09:38 +0000
Re: Pulling ad-hoc data from a database into a PHP web page "M. Strobel" <sorry_no_mail_here@nowhere.dee> - 2014-11-26 11:56 +0100
Re: Pulling ad-hoc data from a database into a PHP web page Jerry Stuckle <jstucklex@attglobal.net> - 2014-11-26 07:51 -0500
Re: Pulling ad-hoc data from a database into a PHP web page "M. Strobel" <sorry_no_mail_here@nowhere.dee> - 2014-11-26 14:24 +0100
Re: Pulling ad-hoc data from a database into a PHP web page Jerry Stuckle <jstucklex@attglobal.net> - 2014-11-26 08:36 -0500
Re: Pulling ad-hoc data from a database into a PHP web page Matthew Carter <m@ahungry.com> - 2014-11-26 10:21 -0500
Re: Pulling ad-hoc data from a database into a PHP web page "M. Strobel" <sorry_no_mail_here@nowhere.dee> - 2014-11-26 20:57 +0100
Re: Pulling ad-hoc data from a database into a PHP web page Jerry Stuckle <jstucklex@attglobal.net> - 2014-11-26 16:21 -0500
Re: Pulling ad-hoc data from a database into a PHP web page "Christoph M. Becker" <cmbecker69@arcor.de> - 2014-11-06 18:27 +0100
Re: Pulling ad-hoc data from a database into a PHP web page "James Harris" <james.harris.1@gmail.com> - 2014-11-06 15:58 +0000
Re: Pulling ad-hoc data from a database into a PHP web page Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-11-06 21:34 +0100
Re: Pulling ad-hoc data from a database into a PHP web page Jerry Stuckle <jstucklex@attglobal.net> - 2014-11-05 23:00 -0500
Re: Pulling ad-hoc data from a database into a PHP web page "James Harris" <james.harris.1@gmail.com> - 2014-11-06 15:29 +0000
Re: Pulling ad-hoc data from a database into a PHP web page Matthew Carter <m@ahungry.com> - 2014-11-06 10:44 -0500
Re: Pulling ad-hoc data from a database into a PHP web page "James Harris" <james.harris.1@gmail.com> - 2014-11-06 16:15 +0000
Re: Pulling ad-hoc data from a database into a PHP web page Matthew Carter <m@ahungry.com> - 2014-11-06 11:25 -0500
Re: Pulling ad-hoc data from a database into a PHP web page Jerry Stuckle <jstucklex@attglobal.net> - 2014-11-06 12:42 -0500
Re: Pulling ad-hoc data from a database into a PHP web page Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-11-08 13:50 +0100
Re: Pulling ad-hoc data from a database into a PHP web page Matthew Carter <m@ahungry.com> - 2014-11-08 21:19 -0500
Re: Pulling ad-hoc data from a database into a PHP web page Jerry Stuckle <jstucklex@attglobal.net> - 2014-11-08 22:08 -0500
Re: Pulling ad-hoc data from a database into a PHP web page Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-11-09 08:09 +0100
Re: Pulling ad-hoc data from a database into a PHP web page "Christoph M. Becker" <cmbecker69@arcor.de> - 2014-11-06 18:24 +0100
Re: Pulling ad-hoc data from a database into a PHP web page Matthew Carter <m@ahungry.com> - 2014-11-06 12:37 -0500
Re: Pulling ad-hoc data from a database into a PHP web page "James Harris" <james.harris.1@gmail.com> - 2014-11-06 17:51 +0000
Re: Pulling ad-hoc data from a database into a PHP web page "Christoph M. Becker" <cmbecker69@arcor.de> - 2014-11-06 20:56 +0100
Re: Pulling ad-hoc data from a database into a PHP web page Jerry Stuckle <jstucklex@attglobal.net> - 2014-11-06 12:40 -0500
Re: Pulling ad-hoc data from a database into a PHP web page richard <noreply@example.com> - 2014-11-10 11:17 -0500
Re: Pulling ad-hoc data from a database into a PHP web page Denis McMahon <denismfmcmahon@gmail.com> - 2014-11-10 21:27 +0000
csiph-web