这是我的代码。我已经证明我可以很好地连接到xampp服务器并回显消息。但是,当我尝试在表中插入一行时,我总是得到这个解析错误,并且无法找出原因。
$host_name = "localhost";
$database = "db999999";
$user_name = "johndoe";
$password = "123";
$connect = mysqli_connect($host_name, $user_name, $password, $database);
echo("nice job");
mysql_query(INSERT INTO `visitor list` ("Visitor Name") VALUES ("coolio"))
or die("Error in INSERT: ".mysql_error());
当我这样做时,我得到一个错误,行号是以mysql_query开头的行号:
解析错误:语法错误,意外' INTO' (T_STRING)in 第16行的D:\ Users \ Websites \ Page \ index.php
我做错了什么?我已经尝试了所有我能想到的语法变体。
如果我想将值插入3列
如果值来自使用帖子的表单,我如何将值插入列?
更新后的代码 - 修正了一些事情
mysqli_query("INSERT INTO `visitor list` (`Visitor Name`) VALUES ("coolio")")
or die("Error in INSERT: ".mysql_error());
ATTEMPT 3
mysqli_query("INSERT INTO `visitor list` (`Visitor Name`) VALUES ('coolio')")
or die("Error in INSERT: ".mysqli_error());
答案 0 :(得分:3)
您的代码有很多问题,请参阅下面的列表和更正后的代码。
Mysqli
个连接永远不会与mysql_
个函数一起使用。INSERT INTO *visitor list* ("Visitor Name") VALUES ("coolio")
无效(* s是后退标记)。"Visitor Name"
需要在反引号中,因为它是一个列,而不是一个字符串。mysqli_query
函数。mysql_error
再次获得了mysqli
连接的帮助,有点像22。这应该执行你的代码:
mysqli_query($connect, "INSERT INTO `visitor list` (`Visitor Name`) VALUES ('coolio')") or die("Error in INSERT: ".mysqli_error($connect));
对于带参数化查询的预准备语句,请查看以下资源:
How can I prevent SQL injection in PHP? {
{3}} {
{3}} {
{3}}
您当前代码的准备演示(从http://php.net/manual/en/security.database.sql-injection.php推断):
$query = "INSERT INTO `visitor list` (`Visitor Name`) VALUES (?)";
$stmt = mysqli_prepare($connect, $query);
mysqli_stmt_bind_param($stmt, "s", 'coolio');
mysqli_stmt_execute($stmt);
答案 1 :(得分:2)
试试这个
mysqli_query($connect, "INSERT INTO `visitor list` SET `Visitor Name` = 'coolio'");