gpt4 book ai didi

php - 在mysql中使用变量作为参数

转载 作者:行者123 更新时间:2023-11-30 00:08:20 25 4
gpt4 key购买 nike

我已经编写了一种根据 id 从数据库中获取值的方法。

我想在 mysql 中使用变量 id 作为参数,但我无法让它工作。

这是我的代码:

function get_color_by_id($id) {
$mysqli = new mysqli("localhost", "root", "usbw", "ipadshop", 3307);

if($mysqli->connect_errno){
die("Connection error: " . $mysqli->connect_error);
}

set @id := $id;
$result = $mysqli->query('SELECT kleur FROM kleur WHERE id=',@id);
if(!$result){
die('Query error: ' . $mysqli->error);
}

while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
return $row;
}
}

最佳答案

PHP不是 SQL; SQL 代码不应该在 PHP 上下文中工作。因此,过程式 SQLish 语法 (set @id := $id) 在上下文中无效,稍后使用的 @id 表达式也是如此。

如图here (并针对这个问题进行了更新),在mysqli中使用参数的正确方法是使用prepare、bind_param和execute。

$stmt = $mysqli->prepare('SELECT kleur FROM kleur WHERE id = ?');
$stmt->bind_param('i', $id); // assuming $id represents an integer
$result = $stmt->execute();

bind_param使用引用调用语义,所使用的变量在绑定(bind)后不应重新分配,以避免潜在的困惑。

<小时/>

此外,给列和表赋予相同的名称可能会造成混淆;我的偏好是对表/关系使用复数名称,并进一步细化列名称。考虑选择不同名称的查询;

SELECT kleurNaam FROM kleuren WHERE id = ?
-- or in English
SELECT colorName FROM colors WHERE id = ?

更容易阅读,不是吗?

关于php - 在mysql中使用变量作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24315946/

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