作者cspy (Perfect Stranger)
看板PHP
標題[請益] mysql_query()..丟進去的指令
時間Tue Oct 12 16:47:29 2010
想請問一下 mysql_query()
透過 POST 丟進server端的指令字串需要另外做什麼處理嗎
select * from 123table -> 這樣子執行OK
select * from 123table where ac = 'abc' -> 這樣子到query那邊就停下來了
後來把第二行cmd直接寫在server端 sqlcmd變數裡就可以順利執行
然後我的問題可能就是在cmd字串或者是POST後cmd字串
謝謝~~
以下是查詢後動態顯示table欄位
<?php
$host=$_POST['host'];$db=$_POST['db'];
$user=$_POST['user'];$pwd=$_POST['pwd'];
$sql_cmd=$_POST['sql_cmd']; # 我的 sql cmd丟在這裡
echo "host: ".$host."<br>";
echo "user name: ".$user."<br>";
echo "password: ".$pwd."<br>";
#----------------------------------------------------
$statu1 = @mysql_pconnect("$host","$user","$pwd") or exit();
#the return value can be used for other related request
echo "連線 ".$host." 狀態:".$statu1."<br>";
if (!$statu2=mysql_select_db("$db")) {
echo "選擇DB --> ".$db."發生錯誤<br>";
exit();
}
echo "選擇 ".$db." DB 狀態成功: ".$statu2."<br>";
#-----------------------------------------------
mysql_query("set names utf8");
$result=mysql_query("$sql_cmd") or exit();# 這邊是執行query
echo "查詢指令(".$sql_cmd.")狀態:" .$result."<br>";
echo "<br>";
$num1 = mysql_num_fields($result);
$num2 = mysql_num_rows($result);
echo "field-->".$num1." || rows-->".$num2."<br>";
echo "-----------------------<br>";
$_data = array(array());
$irow=0;$iii=0;
while ($fields = mysql_fetch_object($result))
{
foreach ($fields as $name => $value){
echo $name." --> ".$value."<br>";
#-------------------------------------------
if($irow == 0){
$_data[0][$iii]=$name;}
$_data[$irow+1][$iii]=$value;
#-------------------------------------------
$iii++;
if($iii >= $num1){
echo "<br>";$iii=0;$irow++;}
}
}
#------------------------------
cr_tab($num1,$num2,$_data);
#------------------------------
mysql_free_result($result);#release the allocation of mysql_query result
mysql_close ($statu1);
#disconnect from mysql server
?>
<?php
function cr_tab($fs,$rs,&$_data){
$rs++;
printf('
<table border="4" width="271" cellpadding="5" cellspacing="0"
bordercolorlight="#617AAE" bordercolordark="#3B5795" bordercolor="#617AAE">
');
for($a=1; $a <= $rs; $a++){
printf('<tr>');
for($b=1; $b <= $fs; $b++){
# printf ('<td colspan="2"> %d,%d </td>',$a,$b);
printf ('<td colspan="0"> %8s </td>',$_data[$a-1][$b-1]);
}
printf('</tr>');
}
printf ('</table>');
}
?>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 115.165.252.4
1F:推 savenckugo:有程式碼應該會比較容易找到問題.. 10/12 17:13
※ 編輯: cspy 來自: 115.165.252.4 (10/12 17:27)
2F:→ kylekai:你應該有開 auto magic quota ... 不知道是什麼的話去查吧 10/12 17:46