我正在尝试插入一些东西,但它不起作用。我有一段时间没有在PHP中编程,而且有点生疏。有人可以帮忙吗?
注意:已建立数据库连接。
新问题
$query= "INSERT INTO products (p_link, detail, price, title, stock, ship_d) VALUES ('$_POST['link']', '1', '1', '1', '1', '1')";
$results = mysql_query($query, $link);
答案 0 :(得分:2)
是的,列名不应该用单引号括起来,而是使用反引号。
$query= "INSERT INTO products (`p_link`, `detail`, `price`, `title`, `stock`, `ship_d`) VALUES ('1', '1', '1', '1', '1', '1')";
此mysql_*
)扩展程序自PHP 5.5.0
起已弃用,将来会被删除。相反,应使用MySQLi
或PDO_MySQL
扩展名的准备好的语句来抵御SQL注入攻击!
答案 1 :(得分:0)
在列/表名称周围添加反引号通常是一种很好的做法 - 如果你的一个列/表是一个保留字 - 但在这种情况下它不是必需的,而不是查询的问题。问题与...('$_POST['link']',...
改变这个:
" ... VALUES ('$_POST['link']', '1', '1', '1', '1', '1')";
对此:
" ... VALUES ('".$_POST['link']."', '1', '1', '1', '1', '1')";
答案 2 :(得分:0)
$result = mysqli_query($connection, "INSERT INTO products (p_link, detail, price, title, stock, ship_d) VALUES ('".$_POST['link']."', '1', '1', '1', '1', '1')";
我认为这应该适合你。