【问题标题】:MySQLi Insert Statement placing NULL for variable [duplicate]MySQLi插入语句为变量放置NULL [重复]
【发布时间】:2017-04-04 15:13:10
【问题描述】:

所以我有以下代码用于向受访者表添加一行,除了尝试在Brand 中添加值时,所有代码都可以正常工作:

$brand = 'Central';

function new_respondent() {
        global $link;
        $proc = mysqli_prepare($link, "INSERT INTO trespondent (brand, code) VALUES (?, uuid());");
        mysqli_stmt_bind_param($proc, "s", $brand);
        mysqli_stmt_execute($proc);
        $respondent_id = mysqli_insert_id($link);
        mysqli_stmt_fetch($proc);
        mysqli_stmt_close($proc);
        mysqli_clean_connection($link);
}

此代码有效(在一定程度上)在表中添加一行并添加 UUID 没有问题,但 brand 将作为 NULL 进入 - 如果我遗漏了什么,我正在努力解决这里很明显!

欢迎提出任何建议。

【问题讨论】:

  • 你在滥用全局变量。只需将内容作为函数参数传递即可。
  • function new_respondent() => function new_respondent($link, $brand) 并传递这些参数。 global 是一个不好的方法。
  • '你在滥用全局变量。' - 你能详细说明吗?
  • @Homer_J Qirel 只是举了一个例子。

标签: php mysqli insert


【解决方案1】:

您需要将$brand 添加到您的global,因为它在函数之外:

global $link, $brand;

或者,您可以修改您的函数以接受 $brand 作为参数:

function new_respondent($brand) {
...
}

【讨论】:

  • 谢谢....过去 60 分钟我一直在看这个,但看不到!!! DOH!
猜你喜欢
  • 2015-03-07
  • 2013-05-17
  • 1970-01-01
  • 2014-06-30
  • 2017-05-13
  • 1970-01-01
相关资源
最近更新 更多