我正在尝试学习如何在MySQL中使用变量:
$query = "
SET @myid = '1234';
SELECT * FROM `table1` WHERE `id` = @myid;
";
但我在第1行遇到语法错误。
MySQL变量仅限于存储过程吗?如果不是我做错了什么?
答案 0 :(得分:0)
尝试在查询中使用内联变量会在第1行引发语法错误。谢谢Marc B。
SET @myid = '<?php echo $myid; ?>';
SELECT t.*,
CASE WHEN m.`dob` BETWEEN @uDateStart AND @uDateEnd
etc...
我的解决方案是使用mysqli::multi_query
或mysqli_multi_query
,如此:
$this -> db -> multi_query($sql);
$i = 0;
$querySelect = 1; //query 1
do{
if($result = $this -> db -> store_result()) {
if($i === $querySelect) {
while($row = mysqli_fetch_array($result)) {
$data[] = $row;
}
mysqli_free_result($result);
}
}
$i++;
} while($this -> db -> more_results() && $this -> db -> next_result());
$querySelect
可防止返回不需要的结果集。