从具有特定ID PHP,SQL的用户获取名称

时间:2015-03-19 08:24:22

标签: php mysql

我想从我的数据库中获取具有特定ID的名字(Voornaam)和姓氏(Achternaam)。

我想把它放在我的功能中。

我在functions.php中创建了以下函数:

<?php

/* Naam opvragen */
include('gegevens.php');
function getName($getID)
{
    $getname = 'SELECT * FROM KlantGegevens WHERE ID = ' .  $getID;
    $query = $conn->query($getname);
     while($show = $query->fetch_assoc()) {

         $voornaam = $show["Voornaam"];
         return $voornaam;
     }
}
/* Eind naam opvragen */

?>

我用($ getID(= 1))调用该函数:

<?php getName($getID); ?>

我的错误是:

Fatal error: Call to a member function query() on a non-object in /home/thijsgp51/domains/thijskempers.nl/public_html/beheer/functions/functions.php on line 8

我在这里做错了什么?

5 个答案:

答案 0 :(得分:0)

<?php

    /* Naam opvragen */
    function getName($getID)
    {
        $db = new PDO('mysql:host=localhost;port=3307;dbname=test', 'root', 'usbw');
        $stmt = $db->prepare("SELECT * FROM klantgegevens WHERE ID ='$getID' ");
        $stmt->execute();
         while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {

             $voornaam = $row["voornaam"];
             return $voornaam;
         }
    }

    $id = 1;
    echo getName($id);

?>

我使用PDO进行连接尝试。另请阅读sqlinjection上的this帖子非常有帮助。

在代码中我稍微改变了你的查询并将连接放在Till Helge所说的函数中。

快乐的编码!

答案 1 :(得分:0)

试一试。

<?php

    /* Naam opvragen */
    function getName($getID)
    {
        $db = new PDO('mysql:host=localhost;port=3307;dbname=test', 'root', 'usbw');
        $stmt = $db->prepare("SELECT * FROM klantgegevens WHERE ID ='%s",$getID);
        $stmt->execute();
         while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {

             $voornaam = $row["voornaam"];
             return $voornaam;
         }
    }

    $id = 1;
    echo getName($id);

?>

答案 2 :(得分:-1)

更改您的函数定义,删除这两个参数,并将连接从+更改为.

function getName()//or with optional arguments: function getName($voornaam='', $achternaam='')
{

    $conn = new mysqli('localhost', 'user', 'pass', 'database');
    $getID = 1;
    $getname = 'SELECT Voornaam, Achternaam FROM KlantGegevens WHERE ID = ' .  $getID;
    $query = $conn->query($getname);
     while($row = $query->fetch_assoc()) {

         $voornaam = $row["Voornaam"];
         $achternaam = $row["Achternaam"];

         return $voornaam.' '.$achternaam;
     }
}

在函数定义参数中不需要name和forename,因为从数据库中获取它。

正如Till Helge指出的那样,你仍然需要打开与数据库的连接 - 或者把它作为参数,或者作为你函数中的第一个东西(我已经在版本之后把它放在那里):

$conn = new mysqli('localhost', 'user', 'pass', 'database');

答案 3 :(得分:-1)

你的功能得到2个参数

function getName($voornaam, $achternaam)

你应该删除这些参数,因为你没有使用它。

function getName() {
   ....
}

答案 4 :(得分:-3)

你没有在你的函数中传递参数,

<?php getName(); ?>