简单PHP MYSQL代码中的解析错误

时间:2016-01-08 06:05:23

标签: php mysql mysqli

这是我的代码。我已经证明我可以很好地连接到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

  1. 我做错了什么?我已经尝试了所有我能想到的语法变体。

  2. 如果我想将值插入3列

  3. ,我的查询会是什么样子?
  4. 如果值来自使用帖子的表单,我如何将值插入列?

  5. 更新后的代码 - 修正了一些事情

    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());
    

2 个答案:

答案 0 :(得分:3)

您的代码有很多问题,请参阅下面的列表和更正后的代码。

  1. Mysqli个连接永远不会与mysql_个函数一起使用。
  2. 字符串需要在PHP中引用,因此INSERT INTO *visitor list* ("Visitor Name") VALUES ("coolio")无效(* s是后退标记)。
  3. 该查询也无效。 "Visitor Name"需要在反引号中,因为它是一个列,而不是一个字符串。
  4. 使用程序设备时,您需要将连接字符串传递给mysqli_query函数。
  5. mysql_error再次获得了mysqli连接的帮助,有点像22。
  6. 这应该执行你的代码:

    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'");