PHP连MYSQLI数据库问题

lycf1982 2008-12-06 02:30:41
//数据库:db_QS_OA
//表:t_corporationinfo
//字段:corporation_name
/////////////////////////////////代码/////////////////////////////////////
$localhost = "localhost";
$username = "root";
$password = "000000";

$db_cnd = new mysqli($localhost,$username,$password);
$db = "db_QS_OA"; //数据库名
$db_cnd->select_db($db);
if($result = $db_cnd->query("select corporation_name from t_corporationinfo")) //SQL查询在数据库里查询通过
{
while($row = $result->fetch_array())
{
printf("test resualt is %s",$row["corporation_name"]);
  }
$result->close();
}
$db_cnd ->close();
//出现错误:
//Parse error: syntax error, unexpected '}' in F:\wwwroot\Qs_web\test.php on line 13
****************请高手指教....
...全文
219 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lycf1982 2008-12-08
  • 打赏
  • 举报
回复
为什么在BAIDU和GOOGLE里查用PHP MYSQLI 来执行MYSQL存储过程并调用它的返回值(是一个分页过程,有返回记录集和返回值<总页数,和总记录数>)相关的东西不多,都是一些泛泛之言.
///////////////////存储过程///////////////////////////
///////////////通用的分页存储过程//////////////////////
////////////////////目前只返回总页数////////////////

CREATE DEFINER=``@`localhost` PROCEDURE `qs_common_search`(
m_pageNo int ,
m_perPageCnt int ,
m_column varchar(1000) ,
m_table varchar(1000) ,
m_condition varchar(1000),
m_orderBy varchar(200),
out m_totalPageCnt int
)
BEGIN

SET @pageCnt = 1;
SET @limitStart = (m_pageNo - 1)*m_perPageCnt;
SET @limitEnd = m_perPageCnt;
SET @sqlCnt = CONCAT('select count(1) into @pageCnt from ',m_table);
SET @sql = CONCAT('select ',m_column,' from ',m_table);

IF m_condition IS NOT NULL AND m_condition <> '' THEN

SET @sql = CONCAT(@sql,' where ',m_condition);
SET @sqlCnt = CONCAT(@sqlCnt,' where ',m_condition);

END IF;



IF m_orderBy IS NOT NULL AND m_orderBy <> '' THEN

SET @sql = CONCAT(@sql,' order by ',m_orderBy);

END IF;

SET @sql = CONCAT(@sql, ' limit ', @limitStart, ',', @limitEnd);

PREPARE s_cnt from @sqlCnt;
EXECUTE s_cnt;
DEALLOCATE PREPARE s_cnt;
SET m_totalPageCnt = @pageCnt;
PREPARE record from @sql;
EXECUTE record;
DEALLOCATE PREPARE record;

END
////////////////////////////////////////////////////////////////////
///////////////////////要查询的表结构/////////////////////////////////
Create Table `t_CorporationInfo`
(
`corporation_id` int not null auto_increment primary key, /*统一调用ID*/
`corporation_name` varchar(50) default '需填全称', /*企业名称,需填全称*/
`industry_id` int not null default '0', /*生产及流通行业ID*/
`corporation_address` varchar(200) null, /*企业地址*/
`corporation_legal_person` varchar(50) default '需填全称', /*法定代表人,需填全称*/
`corporation_legal_person_tel` varchar(20) default '0318-', /*法定代表人联系电话*/
`corporation_legal_person_moble` varchar(50) default '0318-', /*法定代表人联系电话*/
`corporation_code` varchar(10) default '0000000000', /*企业代码,代码格式,长度待定*/
`corporation_relation_tel` varchar(20) default '0318-', /*日常联系人电话*/
`corporation_relation_moble` varchar(50) default '0318-', /*日常联系人手机*/
`corporation_invalid_date` datetime null, /*到期日期,内容待定*/
`corporation_certificate_exe` varchar(10) default '0000000000', /*营业执照*/
`corporation_check_date` datetime null, /*年检日期*/
`corporation_certificate_code` varchar(10) default '0000000000', /*认证认可证书编号(含工业生产许可证、食品生产许可证、ccc等)代码格式,长度待定*/
`corporation_certificate_invalid_date` datetime null, /*论证证书到期日期*/
`corporation_permit_sanitation_code` varchar(10) default '0000000000', /*卫生许可证编号*/
`corporation_permit_sanitation_code_check_date` datetime null, /*卫生许可证年检日期*/
`corporation_main_product` varchar(500) null, /*企业主导产品*/
`corporation_standerd_ID` varchar(20) default 'ISO 0000-0000', /*执行标准编号*/
`corporation_vessel_num` int default '0', /*强检计量器具数量*/
`corporation_set_num` int default '0', /*特种设备数量*/
`note_text` text null
);
/////////////////////////////////////////////////////////////////
/////////////////////PHP代码//////////////////////////

$table = "\"t_CorporationInfo\"";
$column = "\"corporation_name,corporation_address,corporation_legal_person,corporation_legal_person_tel,corporation_legal_person_moble,corporation_invalid_date,corporation_certificate_exe,corporation_main_product\"";
$orderBy = "\"corporation_id desc\"";
$condition = "\"\"";
$perPageCnt = 10;
$pageNo = 1;
$totalPage = 0;
$db = "db_QS_OA";
require_once(ROOT_PATH.'inc/conn.inc.php'); //连库部分,己测试通过

$db_cnd->select_db($db);

$db_cnd->query("set @m_pageNo=$pageNo"); //页码
$db_cnd->query("set @m_perPageCnt=$perPageCnt"); //页面大小
$db_cnd->query("set @m_column=$column");
$db_cnd->query("set @m_table=$table");
$db_cnd->query("set @m_condition=$condition");
$db_cnd->query("set @m_orderBy=$orderBy");
$result=$db_cnd->query("call qs_common_search(@m_pageNo,@m_perPageCnt,@m_column,@m_table,@m_condition,@m_orderBy,@countpage)");

while($recordset = $result->fetch_array())
{
$category[] = array(
"corporation_name"=>"$recordset[corporation_name]",
"corporation_address"=>"$recordset[corporation_address]",
"corporation_legal_person"=>"$recordset[corporation_legal_person]",
"corporation_legal_person_tel"=>"$recordset[corporation_legal_person_tel]",
"corporation_legal_person_moble"=>"$recordset[corporation_legal_person_moble]",
"corporation_invalid_date"=>"$recordset[corporation_invalid_date]",
"corporation_certificate_exe"=>"$recordset[corporation_certificate_exe]",
"corporation_main_product"=>"$recordset[corporation_main_product]"
);
}
///////////////////////前面调用数据库查询记录通过///////////////////////////
//只是在下面的返回值无法调用.
$smarty->assign("corpration",$category);

$result=$db_cnd->query("select @countpage");

if($recordset = $result->fetch_array())
{
$smarty->assign("pagecount",$recordset[0]);
}
//////////////////结束/////////
jiang_jiajia10 2008-12-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lycf1982 的回复:]
谢谢大家,
我终于明白了,我在UE和DW3切换着编辑这个程序.
////////////////////////////////////////////
while($row = $result->fetch_array())
{
printf("test resualt is %s",$row["corporation_name"]);
  }
////////////////////////////////////////////

" }"
这一行里的空格可能是空格有问题,
[/Quote]
晕恭喜LZ
lycf1982 2008-12-08
  • 打赏
  • 举报
回复
谢谢大家,
我终于明白了,我在UE和DW3切换着编辑这个程序.
////////////////////////////////////////////
while($row = $result->fetch_array())
{
printf("test resualt is %s",$row["corporation_name"]);
  }
////////////////////////////////////////////

" }"
这一行里的空格可能是空格有问题,
gbgaobo5t 2008-12-06
  • 打赏
  • 举报
回复
printf("test resualt is %s",$row["corporation_name"]); 我这测试也可以,只能换成print_r"test resualt is %s",$row["corporation_name"]);试试!!!
penglewen 2008-12-06
  • 打赏
  • 举报
回复
while($row = $db_cnd->fetch_array($result))
UDX协议 2008-12-06
  • 打赏
  • 举报
回复
<?php
//数据库:db_QS_OA
//表:t_corporationinfo
//字段:corporation_name
/////////////////////////////////代码/////////////////////////////////////
$localhost = "localhost";
$username = "root";
$password = "llg";

$db_cnd = new mysqli($localhost,$username,$password);
$db = "db_QS_OA"; //数据库名
$db_cnd->select_db($db);
if($result = $db_cnd->query("select corporation_name from t_corporationinfo")) //SQL查询在数据库里查询通过
{
while($row = $result->fetch_array())
{
printf("test resualt is %s",$row["corporation_name"]);
  }
$result->close();
}
$db_cnd ->close();

?>

本机测试没有问题,你再比较一下。
dzxccsu 2008-12-06
  • 打赏
  • 举报
回复
先看看你的环境支持不支持mysqli这种连接!
dzxccsu 2008-12-06
  • 打赏
  • 举报
回复
语法错误,在第十三行,自己看看是不是少了;或者}有问题
xiayong404 2008-12-06
  • 打赏
  • 举报
回复
我一般不采用这种写法,我的写法如下:

header('Content-Type:text/html;charset=gb2312');
$conn=mysql_connect("127.0.0.1","root","lc")or die("不能连接数据库");
mysql_select_db("test") or die("不能选择数据库");
mysql_query("set names 'gb2312'");
$query=@mysql_query("select content from info where content like '%". $_REQUEST[info]."%' order by id ");
while($array=@mysql_fetch_array($query)){
...
}


本机测试过,没有问题

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧