Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.php > #14498

Re: Pulling ad-hoc data from a database into a PHP web page

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>

Show all headers | View raw


"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 | NextPrevious in thread | Next in thread | Find similar | Unroll thread


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