在我的PHP脚本中找不到错误。有人可以向我指出

时间:2014-06-28 15:15:41

标签: php mysql sql database mysqli

我在我的网络服务器上编写了一个php脚本,用于在表 table3 中插入值。用于获取值的变量是用户名图像用户名包含varchar类型数据,图片包含文本类型数据。我需要将它插入到我的表 table3 中。 table3 有两列用户名图片名称,其中 varchar 类型和文字分别输入。

当我尝试通过输入值运行上述脚本时,错误显示如下:

错误:您的SQL语法出错;检查与您的MySQL服务器版本相对应的手册,以便在#1;'附近使用正确的语法。在第1行

我不明白错误是什么,我知道这个错误就在这里。有人可以帮我清除错误。我是php的新手,对php不太了解。所以需要任何人的帮助......请帮助我。我的php脚本如下所示:

<?php 
$con=mysqli_connect("localhost","username","password","db_name"); 
if (mysqli_connect_errno($con)) 
{ 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 
$username = $_POST['username']; 
$image = $_POST['image']; 
$result = mysqli_query($con,"INSERT INTO table3 (username,imagename) VALUES ('$username','$image')"); 
if (!mysqli_query($con,$result)) 
{
    die('Error: ' . mysqli_error($con));
}
else
    echo "1 record added";
mysqli_close($con);
?>

4 个答案:

答案 0 :(得分:2)

1)**您的SQL语法有错误; **表示您的查询中有错误。您的查询似乎没问题,但该错误可能来自您的帖子数据。你需要mysqli_real_escape_string来发布数据。

2)你执行了两次查询。

尝试这样:

$username = mysqli_real_escape_string($con, $_POST['username']); 
$image = mysqli_real_escape_string($con,$_POST['image']); 
$result = mysqli_query($con,"INSERT INTO table3 (username,imagename) VALUES ('$username','$image')"); 
if (!$result) 
{
    die('Error: ' . mysqli_error($con));
}
else
    echo "1 record added";
mysqli_close($con);

答案 1 :(得分:1)

您应该写一些类似

的内容
$result = mysqli_query($con,"INSERT INTO table3 (username,imagename) VALUES ('$username','$image')"); 
if (!$result) 
{
    die('Error: ' . mysqli_error($con));
}

答案 2 :(得分:0)

条件应该是

if (!$result) 
{
    die('Error: ' . mysqli_error());
}

答案 3 :(得分:0)

您的SQL请求(INSERT)将在第9行发送,结果将记录在$result中。 $result包含受上一个请求影响的行数(1)。

然后再次使用值$result作为SQL请求调用mysqli_query方法:“1”不是有效的SQL请求。