有没有办法在sql中使用这样的函数:
$title = clean_title($title);
"SELECT * FROM article WHERE title = $title"
到
$title = clean_title($title);
"SELECT * FROM article WHERE clean_title(title) = $title"
还有什么办法吗?
答案 0 :(得分:2)
没有
与完全不同的平台在完全不同的时间评估服务器端代码和客户端代码的方式大致相同,数据库代码也是如此
在这种情况下,将数据库视为服务器,将PHP引擎视为客户端。
您的PHP代码正在构建SQL代码,稍后将由数据库进行评估。在PHP代码中,您可以调用PHP函数来驱动该SQL代码的创建。但是一旦SQL代码进入数据库,就不再涉及PHP了。数据库引擎只能评估SQL代码,而不能评估PHP代码。
可以在SQL代码中表达大量逻辑,包括您可以定义的内置函数或自定义函数/过程(很大程度上取决于所使用的SQL引擎)。但是这个逻辑需要在SQL中定义,而不是在PHP中定义。
答案 1 :(得分:-2)
因为你添加了PHP标签,我认为它也是一个使用PHP的选项。在PHP中,您可以使用以下内容:
$SQL = "SELECT * FROM article WHERE ".clean_title($title)." = $title"