2013-03-06 108 views
-2

我一直在试图在我的数据库中添加一行,但无论我做什么,我都一直在接收相同的错误。错误是解析错误:语法错误,意外的T_STRING。 这是我的代码:在数据库中插入行,错误

<!DOCTYPE html> 
<html> 
<body> 
<?php 
$con=mysqli_connect("mysql5.000webhost.com","********","******","*******"); 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 
//Connecting to the Database works 
INSERT INTO test (`1`, `2`, `3`, `4`) VALUES (\'11\', \'11\', \'11\', \'11\'); 
mysqli_close($con); 
?> 
</body> 
</html> 
+2

嗯,如果你阅读手册或任何教程或有你现在发现这是一个体面的PHP编辑器。 – 2013-03-06 02:34:22

回答

1

您需要执行一个查询 - mysqli_query()

$query = mysqli_query("INSERT INTO test (`1`, `2`, `3`, `4`) VALUES ('11', '11', '11', '11')"); 
1

删除\在声明中,

$query = "INSERT INTO test (`1`, `2`, `3`, `4`) VALUES ('11', '11', '11', '11')"; 

但如果列是整数,

$query = "INSERT INTO test (`1`, `2`, `3`, `4`) VALUES (11, 11, 11, 11)"; 
+1

这是正确的,但是这并没有解决OP也缺少'mysqli_query()'/'$ sql-> query()'来实际执行'INSERT'的问题。 – Sean 2013-03-06 02:50:11

+1

@Sean我没有在这里展示执行,而只是要执行的语法。 ':)' – 2013-03-06 02:51:21

1

我注意到你的sql语句就像是php代码一样。 SQL不是由php解释器直接解析的。您需要先将sql放入一个变量中,然后执行该语句。还有,你是逃逸单引号,不是很好

 $sql="INSERT INTO test (`1`, `2`, `3`, `4`) VALUES ('11', '11', '11', '11')"; 
    $result = $db->query($sql); 

    while ($data = $result->fetch_assoc()) 
    { 
     $retval[]= $data; 
    } 

假设$ DB是一个有效的连接

+0

为什么你的'$ sql'在你的'$ result = $ this-> db-> query($ sql);'?另外,为什么要在'INSERT'上显示'$ result-> fetch_assoc()'? – Sean 2013-03-06 02:46:29

+0

哈哈我的错误我做了一个类的测试,我会编辑我的帖子 – 2013-03-06 02:50:16

+0

当我跑你的脚本它给了我错误“致命的错误:调用一个非对象的成员函数查询()在” – user2138160 2013-03-06 03:05:47