使用MySQLi设置MySQL变量(不是PHP变量) [英] Set MySQL Variables with MySQLi (not PHP variables)

查看:49
本文介绍了使用MySQLi设置MySQL变量(不是PHP变量)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

它适用于PHP变量:

通过查询功能替代一个结果

Prepearing one result from query function

   extract($GLOBALS);
   $GLOBALS['mysqli'] = $mysqli;

function select($a,$b){
    $mysqli = $GLOBALS['mysqli'];

    $query = $mysqli -> query($b);
       while($row = ($query -> fetch_assoc())){
        return $row[$a]."<br>";
        }// while
    $query -> free();       
    }

点击位置的顺序

$self = "SELECT order FROM channels WHERE id='$id'";
$self = "(SELECT order FROM (($self)AS x))";

    if($btn == "Up"){
    // Order previows
    $other = "SELECT MAX(order) FROM channels WHERE order < $self";
        }
    if($btn == "Down"){
    // Order next
    $other = "SELECT MIN(order) FROM channels WHERE order > $self";
        }

$other = "SELECT order FROM channels WHERE order=($other)";

设置PHP变量代替MYSQL变量 $ other = select('order',$ other);

SET PHP VARIABLE INSTEAD OF MYSQL VARIABLE $other = select('order',$other);

$query = "UPDATE channels SET order=$self WHERE order='$other';";
$query .= "UPDATE channels SET order='$other' WHERE id='$id'";

$mysqli->multi_query($query);

有问题吗?我需要使用一个MySQL查询进行快速查询

这不起作用:

The problem? I need a faster query using one MySQL query

This doesnt' work:

设置MYSQL变量代替PHP变量

SET MYSQL VARIABLE INSTEAD O PHP VARIABLE

$query = "DEFINE other INT;"; // return: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DEFINE other INT(...);
$query .= "DECLARE other INT;"; // return: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE other INT(...);
$query .= "SET other = $other;"; // return: Unknown system variable 'other'
$query .= "UPDATE channels SET order=$self WHERE order=other;";
$query .= "UPDATE channels SET order=other WHERE id='$id'";

$mysqli->multi_query($query);

推荐答案

您必须使用

用户定义的变量

您可以在一个语句中将值存储在用户定义的变量中,然后 然后在另一条语句中参考它.这使您能够通过 从一个语句到另一个语句的值.用户定义的变量是 特定于会话.也就是说,一个客户端定义的用户变量 无法被其他客户端看到或使用.给定的所有变量 客户端退出后,客户端会话会自动释放.

You can store a value in a user-defined variable in one statement and then refer to it later in another statement. This enables you to pass values from one statement to another. User-defined variables are session-specific. That is, a user variable defined by one client cannot be seen or used by other clients. All variables for a given client session are automatically freed when that client exits.

用户变量写为 @var_name ,其中变量名 var_name由字母数字字符.","_"和"$"组成.一种 用户变量名如果用引号引起来,则可以包含其他字符 字符串或标识符(例如@'my-var',@"my-var"或 @ my-var).

User variables are written as @var_name, where the variable name var_name consists of alphanumeric characters, ".", "_", and "$". A user variable name can contain other characters if you quote it as a string or identifier (for example, @'my-var', @"my-var", or @my-var).

$query .= "SET @other = $other;"; // return: Unknown system variable 'other'

这篇关于使用MySQLi设置MySQL变量(不是PHP变量)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆