我想知道,如何通過MySQL表列PHP變量函數像 這個例子通MySQL的列到PHP函數變量
<?php
function multi($type){
return $type*5;
}
$sql="INSERT INTO table_a (column_a) select '".multi(column_b)."' from table_b"
?>
感謝您的幫助。
我想知道,如何通過MySQL表列PHP變量函數像 這個例子通MySQL的列到PHP函數變量
<?php
function multi($type){
return $type*5;
}
$sql="INSERT INTO table_a (column_a) select '".multi(column_b)."' from table_b"
?>
感謝您的幫助。
你不能從mysql調用PHP操作(雖然不是真的,但我們正在討論如何構建一個全新的PHP SAPI和一個複雜的MySQL UDF或引擎 - 幾個月的工作已經在這些事情上有專長的人)。
最有效的解決方案是在MySQL中實現你的函數。隨着比如你提供:
DELIMITER $$;
CREATE function multi(itype int)
RETURNS int
BEGIN
return itype*5;
END
$$
INSERT INTO table_a (column_a)
SELECT multi(column_b) FROM table_b
$$
但想必你想5.假設這個不能在MySQL做,那麼你需要提取數據到PHP,並創建INSERT語句做的東西比乘法更復雜有:
$res=mysqli_query($dbh, "SELECT column_b FROM table_b");
while ($r=mysqli_fetch_assoc($res)) {
$ins="INSERT INTO table_a(column_a) VALUES ("
. multi($r['column_b']) , ");";
if (!mysqli_query($dbh, $ins)) {
die mysqli_error($dbh);
}
}
非常感謝,它非常有用 – user3744203
在第一步,你應該有數據庫在你的代碼是這樣的連接: $db=mysqli_connect("database address","username","password","database_name");
那麼你應該運行查詢:
$result = mysqli_query($db, {your_query_as_string});
那麼你可以使用結果的每一行是這樣的:
$row = mysqli_fetch_array($result);
每次運行這個$row = mysqli_fetch_array($result);
時候,row
變量代表每行。 這個例子會告訴你使用的所有行: while($row = mysqli_fetch_array($result) { $name = $row['name']; }
每個while cycle
將name
變量設置爲數據庫中的每個名字列。當你達到最後的價值。這段時間將會退出。
'Sql =「'是一個缺少'$'符號的錯字?你也沒有關閉這個語句,如果這是僞代碼,你需要使用一個正確的例子。 '$'會自動拋出一個不確定的常量警告。 –
對不起,這是錯誤的 – user3744203