本文目錄一覽:
PHP向mysql插入數據總是失敗
你的conn.php是什麼?也要貼出來,
首先確定數據庫連接成功,成功之後,將你的sql語句在phpmyadmin中SQL測試,看看有沒有SQL錯誤。
還有,$_POST[”],一般用單引號
sql語句明顯錯誤,id字段要設置成自動增長,改成
$sql=”insert
into
BKNV_VIDEOS(vid,type,title,image,date)
values(‘$vid’,’$type’,’$title’,’$image’,’$date’)”;
你試一試
php向mysql插入數據出錯
mysql語句在執行insert,update時,對於非數字的值,必須加引號,比如
1update tablename set attrA=’valueA’1update tablename set attrA=valueA;
這樣就會報錯。對於數字的值,可以不加,加上也不會影響插入效果,比如
1update tablename set intAttrA = 1;1update tablename set intAttrA = ‘1’;
這兩種都是可以的。
你這裡報錯的一行代碼,假設輸入的$_POST[‘username’]
=
‘a’;$_POST[‘pwd’]
=
‘b’;$_POST[‘content’]
=
‘c’;
在處理後,最後執行的是
INSERT
INTO
userinfo
(username,
pwd,
content)
VALUES
(a,
b,
c);
它的錯誤就是上面說的非數字類的值,沒帶引號。
但實際上,正確的語句應該是
INSERT
INTO
userinfo
(username,
pwd,
content)
VALUES
(‘a’,
‘b’,
‘c’);
所以你測試的
$query
=
‘INSERT
INTO
userinfo
(username,
pwd,
content)
VALUES
(“username”,
“pwd”,
“content”)’;
能正確執行。
最後問題的解決方法是:
1234567$query = “INSERT INTO userinfo (username, pwd, content) VALUES (‘”.$_POST[‘username’].”‘, ‘”.$_POST[‘pwd’].”‘, ‘”.$_POST[‘content’].”)”; 另外 為了看起來舒服點,可以這麼寫:$query = sprintf(“INSERT INTO userinfo (username, pwd, content) VALUES (‘%s’, ‘%s’, ‘%s);”,$_POST[‘username’],$_POST[‘pwd’],$_POST[‘content’]); 最後,你這種寫法,有Sql注入的風險,從安全角度來講是不可取的。所以應該這麼寫:$query = sprintf(“INSERT INTO userinfo (username, pwd, content) VALUES (unhex(‘%s’),unhex(‘%s’), unhex(‘%s’));”,bin2hex($_POST[‘username’]),bin2hex($_POST[‘pwd’]),bin2hex($_POST[‘content’]));
php無法向mysql數據庫中添加數據怎麼辦?
你可以先在mysql裡面執行一遍sql語句,看下能不能添加數據,先檢查語句有沒有問題,再看程序上的問題
原創文章,作者:IEQAW,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/130121.html