今天在用brophp(是lamp兄弟连里的一个框架),写程序的时候,老是报一个错误,具体情况是这样的
if(empty($_GET['id'])) $this->error('数据不存在');
$c = D('news');
$id = $_GET['id'];
$num = $c->total();
$page = new Page($num,10);
$data = $c->where(array('categoryid'=>$id))->limit($page->limit)->select();
/*问题就出在这个地方了,我加了这个where条件,它就报错,如果不加,就正常,而且在报错的时候 调试信息里打印的时候sql语句,我在phpmyadmin里执行了下,也正常,可以查到数据,也就是说sql语句是没有问题的,后来在论坛里找到了方法与原因,看下面*/
$this->assign('p',$page->fpage());
$this->assign('data',$data);
//P($da);
$this->display('index/nlist');
运行时警告[在文件 H:\aphp\BroPHPTest\brophp\bases\dmysqli.class.php 中,第 75 行]:Parameter 2 to mysqli_stmt::bind_param() expected to be a reference, value given
SQL ERROR: [0] No data supplied for parameters in prepared statement
这个是它提示的错误,按照提示,找到dmysqli.class.php的75行。它的代码是
call_user_func_array(array($stmt, 'bind_param'),$value);
换成
call_user_func_array(array($stmt, 'bind_param'), self::refValues($value));
然后,在这个文件里的其它地方,添加上这段代码
function refValues($arr){
if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
$refs = array();
foreach($arr as $key => $value)
$refs[$key] = &$arr[$key];
return $refs;
}
return $arr;
}
根据最后的这个函数,觉得这个应该和php的版本有关,所以暂时记录下吧。
分享到:
相关推荐
初始化声明并返回 mysqli_stmt_prepare() 使用的对象: <?php // 假定数据库用户名:root,密码:123456,数据库:codingdict $con=mysqli_connect(localhost,root,123456,codingdict); if (mysqli_connect_...
MYSQLI_USE_RESULT : MYSQLI_STORE_RESULT)); 在php manul上面对这两个参数是这样解释的。 复制代码 代码如下: Either the constant MYSQLI_USE_RESULT or MYSQLI_STORE_RESULT depending on the desired behavior...
不支持PDO 、MYSQLI的空间也可以用ZEND框架了 解包后到 Zend 的框架目录 library\Zend\Db 在PHP程序里 $db = Zend_Db::factory('Mysql', $params); 即把原来的 PDO_MYSQL 等改成 Mysql
远离恼人的兼容性问题,测试过的客户端见谅语言图书馆经过去github.com/go-sql-driver/mysql :check_mark:PHP mysqli,pdo :check_mark: Python pymysql :check_mark:JavaMySQL的连接器的Java :check_mark:本国的...
主要介绍了PHP mysqli_free_result()与mysqli_fetch_array()函数详解的相关资料,需要的朋友可以参考下
主要介绍了PHP中mysqli_affected_rows作用行数返回值,实例分析了普通模式与oop模式的用法,具有一定的参考借鉴价值,需要的朋友可以参考下
PHP mysqli_select_db() 函数 ...(mysqli_connect_errno($con)) { echo "连接 MySQL 失败: " . mysqli_connect_error(); } // ...查询 "codingdict" 数据库的一些 PHP 代码... // 修改数据库为 "test" mysql
本扩展自 PHP 5.5.0 起已废弃,并在将来会被移除。应使用 MySQLi 或 PDO_MySQL 扩展来替换之,这里就为大家分享一下mysql_connect()与mysqli_connect()的区别,需要的朋友可以参考下
4.9 mysqli_fetch_array记录集获取.pptx
4.8 mysqli_fetch_assoc记录集获取.pdf
You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely missp
$con=mysqli_init(); if (!$con) { die(mysqli_init failed); } mysqli_ssl_set($con,key.pem,cert.pem,cacert.pem,NULL,NULL); if (!mysqli_real_connect($con,localhost,my_user,my_password,my_db)) { die...
$con=mysqli_connect(localhost,root,123456,codingdict); if (mysqli_connect_errno($con)) { echo 连接 MySQL 失败: . mysqli_connect_error(); } // 获取线程 id $t_id=mysqli_thread_id($con); // 杀死线程 ...
$con=mysqli_connect("localhost","root","123456","codingdict"); if (mysqli_connect_errno($con)) { echo "连接 MySQL 失败: " . mysqli_connect_error(); } // 修改数据库连接字符集为 utf8 mysqli_set_charset...
mysqli_get_server_version() 函数将 MySQL 服务器版本作为整数返回。 MySQL 服务器版本将按照以下格式返回: 主要版本10000 + 次要版本100 + 子版本。例如:5.1.0 将返回 50100。 语法 mysqli_get_server_version...
$con=mysqli_connect(localhost,root,123456,codingdict); if (mysqli_connect_errno($con)) { echo 连接 MySQL 失败: . mysqli_connect_error(); } echo System status: . mysqli_stat($con); mysqli_close($con);...