扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
有以下提示供参考:
成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站制作、成都网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的灵璧网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
1、从 chaxun 的函数定义来看,只传递了一个 $str 参数,而函数中直接就使用了 $conn ,如果这个$conn 并不是全局变量,那么就会出错。
2、建议在进行 query 之前,先用 $sql 里的语句到 MySQL 管理器直接运行一下,看有没有正确的结果。
应用
MySQL
时,会遇到不能创建函数的情况。出现如下错误信息:
复制代码
代码如下:
ERROR
1418
:
This
function
has
none
of
DETERMINISTIC,
NO
SQL,
or
READS
SQL
DATA
in
its
declaration
and
binary
logging
is
enabled
(you
*might*
want
to
use
the
less
safe
log_bin_trust_function_creators
variable)
那是因为没有将功能开启。
开启MySQL函数功能:
复制代码
代码如下:
SET
GLOBAL
log_bin_trust_function_creators=1;
关闭MySQL函数功能:
复制代码
代码如下:
SET
GLOBAL
log_bin_trust_function_creators=0;
查看状态:
复制代码
代码如下:
show
variables
like
'%func%';
在MySQL中创建function的写法和SQL SERVER还是有区别的,先看一下在MySQL中正确的写法是什么样,在这个function中目的是返回根据传进年龄参数计算出同龄人有多少,并将结果返回
调用我们刚创建的function,从结果中可以看出我们自定义的function正确执行了,下面来讲讲在MySQL创建function的时候需要注意的事项
DELIMITER的用法就不再多述了,跟在存储过程中的用法一样,我在分享如何创建存储过程中有过描述
此处需要特别注意,传进的参数与数据库字段不能一样,我之前就是因为没注意这里导致function一直不能按照理想的状态执行
在这步我们将参数和数据库字段定义的一样,来看看这样创建的function会返回什么样的值
虽然function也能成功创建,但是在调用的时候发现返回值不是我们想要的那种值,function没有按我们的意愿正常工作,因此还是要特别提醒下:传进的参数与数据库字段不能一样
mysql中定义变量倒是比sql server简单不少,不用声明直接用就可以
8
修改function的处理方式需要先执行drop,然后在create,直接用alter报错,存储过程也有同样的问题,这里不知道是不是有直接修改的办法我还没查到,欢迎交流
MySQL客户端SQLyog,使用某一数据库时,需要选定该数据库,那如何查询选中的数据库,可以利用DATABASE(),代码如下:
SELECT DATABASE();
如下图所示:
2
安装了MySQL数据库,想查看一下版本号,VERSION()返回当前数据库版本,代码如下:
SELECT VERSION();
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流