gpt4 book ai didi

php - 是否可以在使用 bind_param 的同时获取对象? (PHP/MySQLi)

转载 作者:可可西里 更新时间:2023-11-01 13:16:51 25 4
gpt4 key购买 nike

我有一个问题想问你们。我正在努力使我运行 MySQL 的方式尽可能安全。我目前想知道是否可以在准备好语句、绑定(bind)参数并执行语句后使用 MySQLi 获取对象。

例子:

$sql = $mysqli->prepare('SELECT * FROM users WHERE username = ?;');
$sql->bind_param('s', $username);

$username = 'RastaLulz';

$sql->execute();
$object = $sql->fetch_object();
echo $object->mail;

我收到以下错误:

Fatal error: Call to a member function fetch_object() on a non-object in C:\xampp\htdocs\ProCMS\DevBestCMS\inc\global\class.mysql.php on line 23

但是,当我添加“$sql->result_metadata();”时我没有收到错误,但它没有返回结果(它只是 NULL)。

$sql = $mysqli->prepare('SELECT * FROM users WHERE username = ?;');
$sql->bind_param('s', $username);

$username = 'RastaLulz';

$sql->execute();
$result = $sql->result_metadata();
$object = $result->fetch_object();
echo $object->mail;

这是在不绑定(bind)参数的情况下的做法:

$sql = $mysqli->query("SELECT * FROM users WHERE username = 'RastaLulz';");
$object = $sql->fetch_object();
echo $object->mail;

这是我当前的 MySQL 类 - 只需要让执行函数正常工作。 http://uploadir.com/u/lp74z4

我们将不胜感激任何帮助!

最佳答案

我也有同样的疑问。我发现我可以执行以下操作:

# prepare statement
$stmt = $conn->prepare($sql)

# bind params
$stmt->bind_param("s", $param);

# execute query
$stmt->execute();

# get result
$result = $stmt->get_result();

# fetch object
$object = $result->fetch_object();

我希望这对你也有用。

关于php - 是否可以在使用 bind_param 的同时获取对象? (PHP/MySQLi),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5287298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com