bool MyDB::exeSQL(string sql)
{
// mysql_query()执行成功返回0,失败返回非0值。与PHP中不一样
if(mysql_query(connection, sql.c_str()))
{
cout << "Query Error:" << mysql_error(connection);
exit(1);
}
else
{
result = mysql_use_result(connection); // 获取结果集
// mysql_field_count()返回connection查询的列数
cout << mysql_num_rows(result) << endl;
cout << mysql_num_fields(result) << endl;
for(int i=0; i < 3; ++i)
{
// 获取下一行
row = mysql_fetch_row(result);
if(row <= 0)
{
break;
}
// mysql_num_fields()返回结果集中的字段数
for(int j=0; j < mysql_num_fields(result); ++j)
{
cout << row[j] << " ";
}
cout << endl;
}
// 释放结果集的内存
mysql_free_result(result);
}
return true;
}
mysql_num_rows()的返回值为my_ulonglong类型,在某些系统上打印可能不成功,尝试用下面的写法打印:
cout << (unsigned long)mysql_num_rows(result) << endl;
$mysql_server_name='localhost';
$mysql_username='root';
$mysql_password='123456';
$mysql_database='myphp';
$conn=mysql_connect($mysql_server_name,$mysql_username,$mysql_password,$mysql_database);
mysql_select_db($mysql_database,$conn);
//echo $username2;
$sql="select * from register where username='$username2'";
$result=mysql_query($sql) or die ("sql error");
$row=mysql_num_rows($result);
if($row>0){
echo ("yes");
}
else{
echo ("no");
}
mysql_use_result 与mysql_store_result的区别