我不知道是否可能。每当参数 id 获取值时,它都会显示错误//Unknown table 'tbl_news' in field list
function select_table_img ($type,$eid)
{
if($b==NULL)
{
$id=1;
}
else
{
$id="tbl_news.nid='$eid'";
}
echo $sql = "CALL Proc_selectvideo('$type',$id)";//call the stored procedure
$result = mysql_query($sql)or die(mysql_error());
return $result;
}
这是我的存储过程
CREATE DEFINER=`root`@`localhost` PROCEDURE `Proc_selectvideo`(IN `type` VARCHAR(500), IN `id` VARCHAR(500))
select * from tbl_news,tbl_video where tbl_news.nid = tbl_video.cid and tbl_news.ntype=type and id
最佳答案
如果我明白了,问题是您从 php.ini 发送的单引号。
$id="tbl_news.nid='$eid'";
也许您可以在存储过程中使用 IF 语句或 CASE 尝试不同的方式来解决它。
$id=$eid;
CREATE DEFINER=`root`@`localhost` PROCEDURE `Proc_selectvideo`(IN `type` VARCHAR(500), IN `id` VARCHAR(500))
DECLARE part_of_query VARCHAR(300) DEFAULT '';
SET part_of_query = CASE
WHEN id IS NOT NULL THEN CONCAT(" AND tbl_news.nid='",id,"' ")
ELSE 'maybe other parameter or rule...'
END;
select * from tbl_news,tbl_video where tbl_news.nid = tbl_video.cid and tbl_news.ntype=type part_of_query
关于php - 如何在存储过程中添加where条件作为参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42680078/