我已使用预准备语句设置变量,如下所示:
$CPI = $cxn->prepare('SET @CPI = ?');
$CPI->bind_param('d', $_POST['CPI_Esc']);
$CPI->execute();
我现在想在以后的php脚本中访问@CPI的值而不使用$_POST['CPI_Esc'].
我已经尝试了以下内容,因为它在MySQL方面有意义:
$Check = "SELECT @CPI";
$Check = mysqli_query($cxn, $CPI);
echo $Check . " CPI value";
我很确定mysqli_query()
在这里使用是错误的功能 - 我不确定使用哪个或者我是否接近这个错误的方式。我只是想在php中创建一个变量,以后我可以根据我以前执行的预处理语句的值来使用它。有什么想法吗?
答案 0 :(得分:2)
我只是想在php中创建一个我以后可以使用的变量
每个PHP运行都是一个单独的进程,其自身的变量范围不在其他进程之间共享。要存储要从不同运行中访问的值,您需要一些外部存储。以下是一些:
如果两个运行共享一个会话ID(例如,您通过刷新同一页面或浏览您的站点从浏览器访问它们),那么您可以利用PHP的内置会话存储和$_SESSION
变量。请进一步阅读:http://php.net/manual/en/book.session.php因为您的里程可能会有所不同。
UPD。简要介绍如何使用会话变量访问同一页面的不同请求之间的数据。
将它放在php脚本之上:
session_start();
使用通常的数组赋值将值存储在某个键下:
$_SESSION['CPI'] = $_POST['CPI_Esc'];
稍后使用通常的数组取消引用访问它:
echo "CPI value: {$_SESSION['CPI']}\n";
在通常情况下*这应该适合你。
*通常情况包括:未完成的php配置;有足够的权限让php进程写入sessions目录;您的浏览器接受cookie。