php - 从 php 脚本调用的 INSERT INTO 失败

标签 php ios sql

我有一个 ios 应用程序,我正在从我的在线服务器调用一个脚本,以便将一个值插入到一个表中。

在这段代码中:

//try to register the user
$result = query("INSERT INTO login(username, pass) VALUES('%s','%s')", $user, $pass);
if (!$result['error']) {
    //success
    login($user, $pass);
} else {
    //error
    errorJson($result['error']);
}

我总是进入 else 子句,并打印出 Database error

注意:errorJson 是一个从字符串输出 json 以便将其发送回 iphone 应用程序的函数。

正常播放的正常选择,所以我不可能没有连接到数据库。

完整代码在这里:

function register($user, $pass) {
    //check if username exists
    $login = query("SELECT username FROM login WHERE username='%s' limit 1", $user);
    if (count($login['result'])>0) {
        errorJson('Username already exists');
    }
       //try to register the user
       $result = query("INSERT INTO login(username, pass) VALUES('%s','%s')", $user, $pass); 
        if (! $result['error']) {
        //success
        login($user, $pass);
        } else {
    //error
              errorJson($result['error']);
        }
}

如果用户名存在,上面的 NSLog 会正常打印,所以我想我可以连接到数据库。

这是我的查询函数:

//executes a given sql query with the params and returns an array as result
function query() {
    global $link;
    $debug = false;

    //get the sql query
    $args = func_get_args();
    $sql = array_shift($args);

    //secure the input
    for ($i=0;$i<count($args);$i++) {
        $args[$i] = urldecode($args[$i]);
        $args[$i] = mysql_real_escape_string($link, $args[$i]);
    }

    //build the final query
    $sql = vsprintf($sql, $args);

    if ($debug) print $sql;

    //execute and fetch the results
    $result = mysql_query($link, $sql);
    if (mysql_errno($link)==0 && $result) {

        $rows = array();

        if ($result!==true)
        while ($d = mysql_fetch_assoc($result)) {
            array_push($rows,$d);
        }

        //return json
        return array('result'=>$rows);

    } else {

        //error
        return array('error'=>'Database error');
    }
}

最佳答案

你的语法错误,应该是:

mysql_query($sql, $link):

正确的语法: mysql_query ( string $query [, resource $link_identifier = NULL ] )

关于php - 从 php 脚本调用的 INSERT INTO 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18287136/

相关文章:

php - 获取具有唯一值的排序mysql记录

php - 构建用于在 Android 平板电脑上运行 PHP 和 MySQL 的 Android 应用程序

php - postman 发布请求返回 null

ios - 没有这样的模块 "Armchair"

mysql - 从 MySQL 数据库中搜索 LongBlob 列中的文本

PHP/MySQL 每行都有不同的值

ios - 将字符串设置为可选值的问题

ios - 隐藏导航栏?

sql - SQLite 中的 Select 语句识别行号

mysql - Moodle 2.9 中每个用户的登录次数