我想从我的数据库中获取具有特定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
我在这里做错了什么?
答案 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(); ?>