這個問題困擾我二天了..
前陣子我在cashfreeweb的網站有申請支援php語法的免費空間
我的需求只是要將簡單的訂購單按送出後可以將填寫的資料寫入到mysql資料庫裡
我將簡單的php網頁上傳到免費空間後,登入網站提供的phpmyadmin,送出的資料都沒問題
也就是資料寫入是正常的,但最近該免費空間好像倒了..
所以我就自己安裝了xampp的軟件,apache和mysql以及phpmyadmin都啟動正常
可是php網頁送出後,登入到phpmyadmin裡卻都沒有資料
我在phpmyadmin裡直接新增資料卻是正常的,如果將新增的sql語法複製再貼到php網頁裡執行卻是一樣新增不了
以下這段是我從phpmyadmin複製的,test是資料庫~table是資料表
我測試將aa bb cc dd ee ff的欄位寫入1的數字(寫完後有刪掉)
$sql = "INSERT INTO test
.table
(aa
, bb
, cc
, dd
, ee
, ff
) VALUES (\'1\', \'1\', \'1\', \'1\', \'1\', \'1\');";
但是在php網頁執行後一樣沒資料..而且都沒有錯誤訊息..請問一下這是什麼原因?
是php.ini、my.ini還是apache裡的config.conf裡的設定沒有設好嗎?
以下是php的語法
<p class="style1 style3">訂購的公司名稱:<?php echo $_POST['send']; ?></p>
<p class="style1 style3">聯絡人姓名:<?php echo $_POST['send2']; ?></p>
<p class="style1 style3">訂購園遊券張數:<?php echo $_POST['select2']; ?></p>
<p class="style2">訂購餐券張數:<?php echo $_POST['select3']; ?></p>
<p class="style2">聯絡電話或手機:<?php echo $_POST['send22']; ?></p>
<p class="style2">留言訊息:<?php echo $_POST['message']; ?></p>
<p class="style2"> </p>
<p class="style1"> </p>
<?php
$a = $_POST['send'];
$b = $_POST['send2'];
$c = $_POST['select2'];
$d = $_POST['select3'];
$e = $_POST['send22'];
$f = $_POST['message'];
mysql_connect('localhost','ms','572958') or die("connect error!");
mysql_select_db('test') or die("db error");
mysql_query("SET NAMES 'utf8'");
$query = "INSERT INTO table (aa,bb,cc,dd,ee,ff) VALUES ('$a','$b','$c','$d','$e','$f')" or die("insert error");
mysql_query($query);
?>
比較奇怪的是帳號或者資料庫名字如果打錯會出現錯誤
但是資料表打錯的話不會有錯誤,資料也都寫不進去
這跟phpmyadmin的使用者權限有關嗎?(我已將使用者權限全選了)
麻煩高手幫忙,謝謝
fsh18108提到:
$query = "INSERT INTO table (aa,bb,cc,dd,ee,ff) VALUES ('$a','$b','$c','$d','$e','$f')" or die("insert error");
mysql_query($query);
這邊寫錯了
$queryStr = "INSERT INTO table (aa,bb,cc,dd,ee,ff) VALUES ('$a','$b','$c','$d','$e','$f')";
mysql_query($queryStr,$mysqlConnection) or die('Insert data fail');
請教一下..我改成這樣
<?php
$a = $_POST['send'];
$b = $_POST['send2'];
$c = $_POST['select2'];
$d = $_POST['select3'];
$e = $_POST['send22'];
$f = $_POST['message'];
$mysqlConnection=mysql_connect('localhost','ms','572958') or die("connect error!");
mysql_select_db('test') or die("db error");
mysql_query("SET NAMES 'utf8'");
$queryStr = "INSERT INTO table (aa,bb,cc,dd,ee,ff) VALUES ('$a','$b','$c','$d','$e','$f')";
mysql_query($queryStr,$mysqlConnection) or die(mysql_error());
?>
會出現這個錯誤You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'table (aa,bb,cc,dd,ee,ff) VALUES ('0','0','0','0','0','1')' at line 1
是哪裡有問題嗎..很奇怪都寫不進去,看起來是要寫入table這個資料表時有問題
可是我確認過很多次,欄位和資料表名稱都正確阿..加了' '也是一樣..
我快瘋嚕..
謝謝回應喔
0.0
後來我資料庫刪掉重設後就正常了
謝謝大家的回應喔
mysql_connect("localhost","userName","passWord");
mysql_select_db("my_db", $con);
mysql_query($sql,$con)
mysql_close($con)
參考一下::
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("my_db", $con);
$sql="INSERT INTO Persons (FirstName, LastName, Age)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";
mysql_close($con)
?>
php.ini裡面的magic_quotes_gpc = On,然後重啟apache
ㄝ,magic_quote_gpc這個設定到php5.3會deprecated然後到php6會拿掉,所以不要依賴他比較好。用utf-8就可以避開許功蓋的問題了,除非是舊的系統。
另外一個方法是修改程式,由程式來處理escape字元,例如$a = addslashes($_POST['send']);
請教一下我已經把
magic_quotes_gpc = On,然後重啟apache了
可是還是不行..
<?php
$a = $_POST['send'];
$b = $_POST['send2'];
$c = $_POST['select2'];
$d = $_POST['select3'];
$e = $_POST['send22'];
$f = $_POST['message'];
$mysqlConnection=mysql_connect('localhost','ms','572958') or die("connect error!");
mysql_select_db('test') or die("db error");
mysql_query("SET NAMES 'utf8'");
$queryStr = "INSERT INTO table (aa,bb,cc,dd,ee,ff) VALUES ('$a','$b','$c','$d','$e','$f')";
mysql_query($queryStr,$mysqlConnection) or die(mysql_error());
?>
會出現這個錯誤You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'table (aa,bb,cc,dd,ee,ff) VALUES ('0','0','0','0','0','1')' at line 1
是哪裡有問題嗎..很奇怪都寫不進去,看起來是要寫入table這個資料表時有問題
可是我確認過很多次,欄位和資料表名稱都正確阿..加了' '也是一樣..
我快瘋嚕..
謝謝回應喔