我有这两个问题:
SELECT * FROM table_a WHERE id=1
UPDATE table_a SET column_a="abcd" WHERE id=1
我想知道如何将它们转换为PHP
答案 0 :(得分:1)
您可以使用子查询:
UPDATE table_a SET column_a='abcd' WHERE id = (
SELECT id FROM table_a WHERE id=1
);
在这种情况下,不需要子查询,因为id
井来自table_a。
答案 1 :(得分:0)
我不确定我理解你的问题。我看到两种可能性:
如果要执行不带变量部分的查询,可能需要使用PHP:
$pdo->exec(
'SELECT * FROM table_a WHERE id=1;
UPDATE table_a SET column_a="abcd" WHERE id=1'
);
如:
<?php
try {
$pdo = new PDO(...);
if (!$pdo->exec('SELECT * FROM table_a WHERE id=1; UPDATE table_a SET column_a="abcd" WHERE id=1')) {
echo 'Error with the queries'.PHP_EOL;
} else {
echo 'Queries success'.PHP_EOL;
}
} catch (Exception $e) {
echo 'Error: '.$e->getMessage().PHP_EOL;
}
通过将查询与;
分开,您可以一个接一个地运行它们
否则,如果您尝试检索id
查询中的UPDATE
,则可以执行嵌套查询:
$pdo->exec(
'UPDATE table_a SET column_a="abcd"
WHERE id = (
SELECT id
FROM table_a
WHERE id=1
)'
);
如:
<?php
try {
$pdo = new PDO(...);
if (
!$pdo->exec(
'UPDATE table_a SET column_a="abcd"
WHERE id = (
SELECT id
FROM table_a
WHERE id=1
)'
)
) {
echo 'Error with the queries'.PHP_EOL;
} else {
echo 'Queries success'.PHP_EOL;
}
} catch (Exception $e) {
echo 'Error: '.$e->getMessage().PHP_EOL;
}
我假设您知道如何使用PDO
或 MySQL驱动程序来使用PHP进行这些查询。否则,我建议您了解它如何与PHP一起使用,并注意不要使用mysql
驱动程序(在PHP 7中已弃用),而是要更喜欢PDO
或{ {1}}驱动程序
答案 2 :(得分:-1)
试试这个:
首先从表中选择所有列然后更新:
$sql = 'SELECT * FROM table_a where id=1';
$qry = mysql_query($sql);
$count = count($qry);
if ($count > 1) {
$id = $qry["id"];
// update query
$updatesql = 'UPDATE table_a SET column_a="abcd" WHERE id=$id';
$updateqry = mysql_query($updatesql);
if ($updateqry) {
echo "updated";
} else {
echo "Something error occured while connecting with database";
}
} else {
echo "No record Found";
}