我会将查询传递给此函数query("SELECT * FROM table_name");
功能是
public function query($sql) {
$resource = mysql_query($sql, $this->link_web);
if ($resource) {
if (is_resource($resource)) {
$i = 0;
$data = array();
while ($result = mysql_fetch_assoc($resource)) {
$data[$i] = $result;
$i++;
}
mysql_free_result($resource);
$query = new stdClass();
$query->row = isset($data[0]) ? $data[0] : array();
$query->rows = $data;
$query->num_rows = $i;
unset($data);
return $query;
} else {
return true;
}
} else {
trigger_error('Error: ' . mysql_error($this->link_web) . '<br />Error No: ' . mysql_errno($this->link_web) . '<br />' . $sql);
exit();
}
}
我想在tenent_id = '1'
查询中为SELECT
查询添加INSERT
。同样,我需要为UPDATE
执行此操作。
我想带这样的查询
SELECT * FROM table_name WHERE tenent_id = 1 and user_id = 1
INSERT INTO table_name('tenant_id, user_id') VALUE('1','1')
UPDATE table_name SET user_id = 1 WHERE tenant_id = '1'
任何人都可以告诉我如何在select,insert和update
中插入tenant_id
提前致谢
答案 0 :(得分:0)
最好使用正确的mysql函数而不仅仅是查询函数。
例如,如果要循环数据库中的多个项目,可以使用while循环:
$query = mysql_query("SELECT * FROM table WHERE type='2'");
while($row = mysql_fetch_array($query)){
echo $line['id'];
}
这将回显数据库中具有类型2的所有ID。
同样的原则是当你有一个对象时,使用mysql函数,你可以指定你想要的数据返回方式。上面我把它以数组形式返回。在这里,我将返回一行作为对象:
$query = mysql_query("SELECT * FROM table WHERE id='1'");
$object = mysql_fetch_object($query);
echo $object->id;
echo $object->type;
echo $object->*ANY COLUMN*;
这将返回: 1。 2。 无论该列的价值是什么。
要插入数据,您不需要执行“query()”。你可以简单地使用mysql_query($ sql)。 它将使未来的生活更加轻松。
此外,最好在函数中运行一个查询,这样就可以正确处理数据。
mysql_query("INSERT...");
mysql_query("UPDATE...");
mysql_query("SELECT...");
希望这有帮助。
答案 1 :(得分:0)
简单的答案是:只需在查询中添加条件即可。致电query("SELECT * FROM table_name WHERE tenant_id = 1 and user_id = 1")
。
如果您担心转义传递给SQL查询的参数(您应该这样做!),您可以自己手动完成,例如。
$query = sprintf("SELECT * FROM table_name WHERE tenant_id = %d", intval($tenant_id));
query($query);
或者更好地使用mysqli扩展提供的预备语句(无论如何,mysql_query是deprecated):
$stmt = $mysqli->prepare("SELECT * FROM table_name WHERE tenant_id = ?");
$stmt->bind_param("i", $tenant_id);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
// ...
}
如果我仍然没有回答您的问题,您可以使用库来处理您的查询,例如dibi:
$result = dibi::query('SELECT * FROM [table_name] WHERE [tenant_id] = %i', $id);
$rows = $result->fetchAll(); // all rows
最后一个选项就是我要使用的,您不需要编写自己的查询处理函数并免费获取查询参数绑定。在您的情况下,您可以逐步构建查询,以便WHERE条件不是您的基本查询的一部分:
$query[] = 'SELECT * FROM table_name';
if ($tenant_id){
array_push($query, 'WHERE tenant_id=%d', $tenant_id);
}
$result = dibi::query($query);