iT邦幫忙

1

透過AJAX寫資料進資料庫時,PHP報錯(已解決)

大家好,
小魯正在試著用ajax將資料寫入資料庫,但遇到了以下錯誤解不掉,還請各位幫忙看看,感謝

小魯實在想不通為什麼會一直顯示我沒有定義$workName QQ
input這邊也有打上name="workName"啊

以下是ajax和php的部分
code

▲更新,找到解法了

淺水員 iT邦高手 3 級 ‧ 2021-03-07 23:08:42 檢舉
PDO 用法可參考
https://ithelp.ithome.com.tw/articles/10183166
也許看完自己就知道怎麼解決了
感謝提供好文
嗯...希望你不會遇到 SQL 注入攻擊
0
koro_michael
iT邦新手 3 級 ‧ 2021-03-08 00:00:28

加在16行下面

$statement->bindValue(':workName', $workName, PDO::PARAM_STR);

koro_michael大感謝協助,但試了這個方法還是會出現相同的報錯

biscuit iT邦新手 5 級 ‧ 2021-03-08 17:11:25 檢舉

正常來說應該可以有這三種寫法

  1. 16跟17行之間
    $statemen->bindParam(':workName', $workName, PDO::PARAM_STR);

  2. 16跟17行之間
    $statemen->bindValue(':workName', $workName, PDO::PARAM_STR);

  3. 換17行
    $statemen->execute(array('workName'=>$workName));

傳入值記得要做轉碼
$workName = htmlspecialchars($_POST['workName'],ENT_QUOTES)

1
japhenchen
iT邦大師 1 級 ‧ 2021-03-08 09:06:16

或是改

$sql = 'INSERT INTO costomize(..................................) VALUES (1,9999,1, {$workName} ,.........)";

japhenchen大感謝回覆,但試了這個方法還是會出現相同的報錯。

biscuit iT邦新手 5 級 ‧ 2021-03-08 17:02:17 檢舉

$sql = 'INSERT INTO costomize(..................................) VALUES (1,9999,1, '$workName}',.........)";

你的傳入值是文字 這個寫法要加 ' '

0
WQ
iT邦新手 3 級 ‧ 2021-03-08 13:22:48

語法錯誤??
:workName --->$workName????

我要發表回答

立即登入回答