以下代码返回此错误。
explode()期望参数2为字符串,资源为
我做错了什么?
<?php
$sql = mysql_query("SELECT MAX(no_trans) as nomor FROM tb_periksa");
$trans_prefix = "08201";
$x = explode($trans_prefix, $sql);
$no_trans = $trans_prefix.str_pad(($x[1]+1), 4, "0", STR_PAD_LEFT);
?>
Nomor Transaksi:
<input type="text" name="no_trans" id="no_trans" value=<?php echo sprintf($no_trans);?>>
答案 0 :(得分:1)
您正试图爆炸返回的资源。你需要先获取它。如果它是多行,则需要循环获取。
list1 = ['A', 'U', 'C', 'C', 'A']
list2 = ['12', '14']
key = {'A12':'*', 'C14':'#'}
list3 = ['12', '14', '0', '0','0'] #build by myself
combo = list(set(itertools.permutations(list3, len(list3))))
list_combo = []
for each_list in combo:
new_list = []
for i in xrange(len(list1)):
if list1[i]+each_list[i] in key:
new_list.append(key[list1[i]+each_list[i]])
else:
new_list.append(list1[i])
list_combo.append(new_list)
print list_combo
来自manual:
返回的结果资源应该传递给mysql_fetch_array(),以及其他用于处理结果表的函数,以访问返回的数据。
以下是fetch_array的手册http://php.net/manual/en/function.mysql-fetch-array.php。另请注意,$row = mysql_fetch_array($sql, MYSQL_NUM); $row[0];
echo $row[0];
函数现已弃用。现在,mysql_
或PDO
函数应用于数据库交互。
完整(未经测试)的例子:
mysqli
答案 1 :(得分:1)
$('#cigptable').DataTable( {
"pagingType": "full_numbers",
"dom": 'T<"clear">lfrtip',
"tableTools": {
"sSwfPath": "../../../plugins/datatables/extensions/TableTools/swf/copy_csv_xls_pdf.swf"
},
"oLanguage": {
"oPaginate": {
"sPrevious": '<i class="ion-ios-arrow-left"></i>',
"sNext": '<i class="ion-ios-arrow-right"></i>'
}
}
});
使用第一个参数中提供的分隔符拆分字符串。
错误消息是正确的。您通过explode()
变量将mysql_query
的结果作为第二个参数传递给explode
。 $sql
返回资源类型,因此您的变量mysql_query
属于资源类型而不是字符串。
请参阅documentation $sql
功能。
explode()
此外,不推荐使用array explode ( string $delimiter , string $string [, int $limit ] )
函数,将来的版本将不再支持这些函数。请使用mysql_*
函数或PDO。
答案 2 :(得分:0)
您需要将MySQL查询结果传递给mysql_fetch *命令才能获得实际结果。您当前正在将对数据库结果集的引用传递给explode而不是结果集本身。