从具有特定ID的用户获取姓名PHP,SQL
我想从我的数据库中获得具有特定ID的姓氏(姓名)和姓氏(Achternaam)。从具有特定ID的用户获取姓名PHP,SQL
我想把它放在我的一个函数中。
我的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
我在这里做错了什么?
改变你的函数定义,删除那些2个参数,变串联从+
到.
:
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;
}
}
,因为你从数据库得到它你不需要在函数定义的参数名称和用的名字。
由于直到黑尔格指出的那样,你仍然需要打开连接到数据库 - 无论是把它作为一个参数,或拨打作为自己的函数中的第一件事情(我已经把有版后):
$conn = new mysqli('localhost', 'user', 'pass', 'database');
您没有考虑到数据库连接在函数作用域中不可用。 – 2015-03-19 08:29:59
@TillHelge是的,我没有,对我感到羞耻...我已经编辑了,谢谢 – 2015-03-19 08:35:41
谢谢,我让我的问题更清楚些,也许现在更容易? – 2015-03-19 08:49:09
你没有通过你的函数的参数,
<?php getName(); ?>
哇...你真的想这样的声誉,嗯?你甚至没有提供**正确的**代码示例,但只是复制并粘贴错误的行。这真是令人不安。 – 2015-03-19 08:29:08
我只粘贴正确的路线,我是我错了,他没有通过论点的getName(),我提到了自己的错误,这就是我所做的,它不是回答,其约指着他的错误 – 2015-03-19 08:32:03
谢谢,我做了我的问题更清楚一点,也许现在更容易? – 2015-03-19 08:49:12
你funcion获得2个参数
function getName($voornaam, $achternaam)
您应该删除这些参数,因为您没有使用它。
function getName() {
....
}
谢谢,我让我的问题更清楚一点,也许现在更容易? – 2015-03-19 08:49:15
<?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的连接尝试。另请阅读this发布在sqlinjection上非常有帮助。
在代码中,我改变了你的查询了一下,把连接放在像Till Helge这样的函数中。
快乐编码!
试试吧。
<?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);
?>
你的问题是什么? – 2015-03-19 08:26:13
它不返回名称 – 2015-03-19 08:26:48
您需要使用这两个参数调用该函数 – progsource 2015-03-19 08:27:48