请教这个select语句如何修改:$wuyn_s1='select * from qiyn_a where hztopy(z1)="'.hztopy($f).'"'.'order by rand()';其中hztopy是一个汉字转拼音的函数,这个函数肯定没什么问题,如果去掉函数,语句也能运行,但是只能得出与$f相同的汉字的数据,谐音的数据出不来。请教如果要出来谐音的数据该如何修改?
自己写的php肯定不可以用于select中的,你数据库中保存的是拼音还是汉字?如果是拼音的话"select * from qiyn_a where z1='".hztopy($f)."' order by rand()";
是PHP的函数,恐怕不能得到结果吧。 $wuyn_s1='select * from qiyn_a where hztopy(z1)="'.hztopy($f).'"'.'order by rand()'; 这个语句中hztopy($f)会得到执行,加入结果是aaaaa 那么最终在数据库执行的语句是:select * from qiyn_a where hztopy(z1)=‘aaaaa’ order by rand()你看,相当有一个PHP的函数在MySQL中执行,那当然不行了。
自己用php编写的函数,并非mysql函数,函数也测试通过的,所有函数没有问题,但不知道php函数能不能用于select语句中,如果不能用,如何修改,或提供一个思路. $wuyn_s1='select * from qiyn_a where hztopy(z1)="'.hztopy($f).'"'.'order by rand()'; 这个语句中hztopy($f)会得到执行,加入结果是aaaaa 那么最终在数据库执行的语句是:select * from qiyn_a where hztopy(z1)=‘aaaaa’ order by rand()
$wuyn_s1='select * from qiyn_a where hztopy(z1)="'.hztopy($f).'"'.'order by rand()';
这个语句中hztopy($f)会得到执行,加入结果是aaaaa
那么最终在数据库执行的语句是:select * from qiyn_a where hztopy(z1)=‘aaaaa’ order by rand()你看,相当有一个PHP的函数在MySQL中执行,那当然不行了。
$wuyn_s1='select * from qiyn_a where hztopy(z1)="'.hztopy($f).'"'.'order by rand()';
这个语句中hztopy($f)会得到执行,加入结果是aaaaa
那么最终在数据库执行的语句是:select * from qiyn_a where hztopy(z1)=‘aaaaa’ order by rand()
MySQL也支持自定义函数