使用PHP将已定义的变量INSERT到MySQL DB /表中,没有数据(显然)被写入DB?

Gid*_*eon 1 php mysql database insert

谢谢参观:

这是我用来将数据插入表中的php

<?php

session_start();

//sets a variable from a session value
if (isset($_SESSION['sv_01'])) {$sv_01=$_SESSION['sv_01'];} else {$sv_01="";}

//to test that the variable has been set and is not empty
echo $sv_01;

//define database log in stuff
$username="username123";
$password="password123";
$database="database01";
$table="my_table";
$dbaddress="123.123.123.123";

//connect to dbserver
$con=mysql_connect($dbaddress,$username,$password); 

if (!$con) 
{ 
die('Could not connect:' .mysql_error()); 
} 

//select the db
mysql_select_db($database) or die( "Unable to select database"); 

//insert data from variables
mysql_query("INSERT INTO $table 
(
$sv_01
)
VALUES 
(
'$sv_01'
)");

mysql_close($con);

?>
Run Code Online (Sandbox Code Playgroud)

我运行它,然后去检查数据库的内容.使用MySQL工作台我打开连接和有问题的数据库和表,选择所有行,表中没有数据.

MySQL信息:排序规则:latin1 - 默认排序规则引擎:MyISAM数据类型:sv_01 VARCHAR(255)默认值:NULL

我有什么不正确的想法吗?

alf*_*sin 5

我相信该领域的名称sv_01不是$sv_01

我会尝试:

$query = "INSERT INTO $table (sv_01) VALUES ('$sv_01')";
Run Code Online (Sandbox Code Playgroud)

更新(致力于tadman):
一小段建议:不要使用mysql_query

  • @tadman +1当然你是对的,但我已经厌倦了告诉人们使用PDO/MySqli,因为他们只是"邀请"sql注入.顺便问一下,为什么-1? (3认同)
  • @tadman我同意你的观点,但是,你的观点超出了范围.我回答了他的问题,并选择忽略他使用`mysql_query`的事实,因为我看到你已经对这个问题发表了评论.这个例子与他给出的代码相关. (2认同)
  • 非常感谢你指出我做出的错误@alfasin - 这肯定是我实际问题的原因.也很抱歉引起mysql查询争议 - 因为你已经用不使用它的建议编辑了你的答案 - 我认为我接受你的答案没有冒险让其他新手误入歧途是好的!再次感谢,我将学习如何安全地使用mysqli. (2认同)