我試圖將列的列設置爲每行中的字符串(如果該列存在)。不過,我收到SQL語法錯誤,無法查明究竟是什麼的問題是:SQL中的語法錯誤PHP
while($db = mysqli_fetch_array(mysqli_query($conn, "SHOW DATABASES"))){
$id = $db['id'];
$sql = /** @lang text */
"SELECT IF(EXISTS(
SELECT DISTINCT `info`
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME IN ('borrower')
AND TABLE_SCHEMA = '$db'))
BEGIN
UPDATE `info`
SET `borrower` = '****'
WHERE `id` = '$id'
END";
$query = mysqli_query($conn, $sql);
if (!$query){
// Deal with error
}
}
的語法錯誤,我收到回:
information_schema
db1
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')
BEGIN
UPDATE info
SET borrower = '****'
' at line 5
我知道那一定是一件很渺小,但我已經卡住了一段時間,似乎無法找到我的錯誤。
'開始/ end'只是在存儲過程中有效,而不是一般的'select'查詢。你想做的事情在'select'中是不可能的。選擇只拉取表中的數據OUT。它不能更改表格或任何其他表格的內容。你需要'更新...加入',即使如此,只能針對特定的領域,而不是從一個選擇拉的arginitary。 –
那麼我應該在哪裏放置'UPDATE ...'部分? – Jodo1992
你在那裏做什麼?查詢數據庫模式並將其轉化爲表 - 這看起來可怕極其錯誤 –