MySQLi插入不工作 - 模具错误

时间:2014-02-18 10:16:00

标签: php insert

我正在开发名为“sHTTP”的域名缩短服务。它使用MySQL数据库来存储缩短的URL。我不能插入它们。

这是我的代码:

function db(){
    $link = mysqli_connect('sqlserver', 'user', 'pass', 'db') or die(mysqli_error());
    return $link;
}

$url = mysqli_real_escape_string(db(), $_POST['url']);
$ip = $_SERVER['REMOTE_ADDR'];
function checkexists($name){
    // check if shttp exists
    $q = mysqli_num_rows(mysqli_query(db(),"SELECT name FROM shttp WHERE name = '$name'"));

    if($q > 0){
        return true;
    } else {
        return false;
    }

}


function generateRandStr($length){
    // generate string for placeholder name
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $randomString = '';
    for($i = 0; $i < $length; $i++) {
        $randomString .= $characters[rand(0, strlen($characters) - 1)];
        }

        return $randomString;
    }


    if(checkexists($name)){
        die('sHTTP name exists already!');
        }


    if($_POST['url'] == ''){
        die('No URL entered!');
      }


    if(!$_POST['name']){
        $name = generateRandStr(5);
    }else{
$name = mysqli_real_escape_string(db(), $_POST['name']);
}

//THIS IS MY MAIN PROBLEM HERE GUISE
    $query = "INSERT INTO shttp(name, url, ip) VALUES ($name, $url, $ip)";

//Y U NO WORKING
    $exe = mysqli_query(db(), "INSERT INTO shttp (name, url, ip) VALUES ($name, $url, $ip)");

if(!$exe){
//I'M GETTING THE DIE HALP
    die('Error: Could not be processed');
    } else {
    echo 'sHTTP created!<br>URL: <a href=http://shttp.tk/    '.$name.'>http://shttp.tk/'.$name.'</a>';
    }

我设置了“错误:无法处理”。

另外,我的数据库表是这样的: name varchar(255) url varchar(255) ip varchar(255)

我相信我也是如何在我的代码中设置的。

如果有人可以提供帮助,我将不胜感激。谢谢你的时间。

1 个答案:

答案 0 :(得分:3)

您需要将字符串值的引用用作

$query = "INSERT INTO shttp(name, url, ip) VALUES ('$name', '$url', '$ip')" ;