CodeIgniter Select 列到变量中给出错误

CodeIgniter Select column into variable give error

我使用 codeigniter 上的交易获得此代码

$this->db->trans_begin();

$this->db->query("SET @clientID = {$client_id}, @amount = {$amount}, @gameID = {$game_id}, @tableID = {$table_id}, @tableName = '{$table_name}', @usedBalanceID = NULL");

$this->db->query("SELECT availableBalance INTO @availableBalance FROM client WHERE clientID = @clientID");

SELECT availableBalance INTO @availableBalance 给我一个错误说

Severity: Warning  --> mysqli_num_rows() expects parameter 1 to be mysqli_result;
system\database\drivers\mysqli\mysqli_result.php 37

但使用returns没有错误

$this->db->query("SELECT @availableBalance := availableBalance FROM client WHERE clientID = @clientID");

任何人都可以解释为什么我在 codeigniter 上收到此错误

但是在 laravel

上使用代码时
SELECT availableBalance INTO @availableBalance FROM client WHERE clientID = @clientID

工作正常。

SELECT INTO 语句 selects data from one table and inserts it into a new table。您收到错误是因为查询 $this->db->query("SELECT availableBalance INTO @availableBalance FROM client WHERE clientID = @clientID"); 的 SELECT 部分返回 false,因此没有可插入 table @availableBalance 中的值.

请检查 client table,因为 SQL 无法在 availableBalance 列中针对 clientID = @clientID.[=17 找到任何值=]

$this->db->trans_begin();

$this->db->query("SET @clientID = {$client_id}, @amount = {$amount}, @gameID = {$game_id}, @tableID = {$table_id}, @tableName = '{$table_name}', @usedBalanceID = NULL");

$this->db->query("SELECT availableBalance INTO @availableBalance FROM client WHERE clientID = @clientID");
  • 我刚刚注意到@availableBalance 找不到,所以基本上它会抛出错误。

"SELECT @availableBalance := availableBalance FROM client WHERE clientID = @clientID";

  • 这 运行 没问题,因为 @availableBalance 被用作存储 defined/set。

我创建了示例 sql 脚本来解释我的回答。希望能帮助到你!干杯!

sqlfiddle