備忘錄_20160105(定位)
修改
回首頁
程式 2021-09-17 17:31:07 1631871067 100
mariadb+php test
mariadb+php test
<?php
// for mariadb
function getOConn()
{
$strServer='127.0.0.1:3306';
$strUsername='...';
$strPassword='...';
$strDatabase='test';
return new mysqli($strServer, $strUsername, $strPassword, $strDatabase);
}
function getStrNum($strData)
{
return strval(floatval($strData));
}
function getStrTxt($oConn, $strData)
{
return "'" . $oConn->real_escape_string($strData) . "'"; // unicode 也可以
}
function getStrTypeName($iTypeNum)
{
if($iTypeNum==MYSQLI_TYPE_DECIMAL) { return 'MYSQLI_TYPE_DECIMAL'; }
if($iTypeNum==MYSQLI_TYPE_NEWDECIMAL) { return 'MYSQLI_TYPE_NEWDECIMAL'; }
if($iTypeNum==MYSQLI_TYPE_BIT) { return 'MYSQLI_TYPE_BIT'; }
if($iTypeNum==MYSQLI_TYPE_TINY) { return 'MYSQLI_TYPE_TINY'; }
if($iTypeNum==MYSQLI_TYPE_SHORT) { return 'MYSQLI_TYPE_SHORT'; }
if($iTypeNum==MYSQLI_TYPE_LONG) { return 'MYSQLI_TYPE_LONG'; }
if($iTypeNum==MYSQLI_TYPE_FLOAT) { return 'MYSQLI_TYPE_FLOAT'; }
if($iTypeNum==MYSQLI_TYPE_DOUBLE) { return 'MYSQLI_TYPE_DOUBLE'; }
if($iTypeNum==MYSQLI_TYPE_NULL) { return 'MYSQLI_TYPE_NULL'; }
if($iTypeNum==MYSQLI_TYPE_TIMESTAMP) { return 'MYSQLI_TYPE_TIMESTAMP'; }
if($iTypeNum==MYSQLI_TYPE_LONGLONG) { return 'MYSQLI_TYPE_LONGLONG'; }
if($iTypeNum==MYSQLI_TYPE_INT24) { return 'MYSQLI_TYPE_INT24'; }
if($iTypeNum==MYSQLI_TYPE_DATE) { return 'MYSQLI_TYPE_DATE'; }
if($iTypeNum==MYSQLI_TYPE_TIME) { return 'MYSQLI_TYPE_TIME'; }
if($iTypeNum==MYSQLI_TYPE_DATETIME) { return 'MYSQLI_TYPE_DATETIME'; }
if($iTypeNum==MYSQLI_TYPE_YEAR) { return 'MYSQLI_TYPE_YEAR'; }
if($iTypeNum==MYSQLI_TYPE_NEWDATE) { return 'MYSQLI_TYPE_NEWDATE'; }
if($iTypeNum==MYSQLI_TYPE_INTERVAL) { return 'MYSQLI_TYPE_INTERVAL'; }
if($iTypeNum==MYSQLI_TYPE_ENUM) { return 'MYSQLI_TYPE_ENUM'; }
if($iTypeNum==MYSQLI_TYPE_SET) { return 'MYSQLI_TYPE_SET'; }
if($iTypeNum==MYSQLI_TYPE_TINY_BLOB) { return 'MYSQLI_TYPE_TINY_BLOB'; }
if($iTypeNum==MYSQLI_TYPE_MEDIUM_BLOB) { return 'MYSQLI_TYPE_MEDIUM_BLOB'; }
if($iTypeNum==MYSQLI_TYPE_LONG_BLOB) { return 'MYSQLI_TYPE_LONG_BLOB'; }
if($iTypeNum==MYSQLI_TYPE_BLOB) { return 'MYSQLI_TYPE_BLOB'; }
if($iTypeNum==MYSQLI_TYPE_VAR_STRING) { return 'MYSQLI_TYPE_VAR_STRING'; }
if($iTypeNum==MYSQLI_TYPE_STRING) { return 'MYSQLI_TYPE_STRING'; }
if($iTypeNum==MYSQLI_TYPE_CHAR) { return 'MYSQLI_TYPE_CHAR'; }
if($iTypeNum==MYSQLI_TYPE_JSON) { return 'MYSQLI_TYPE_JSON'; }
if($iTypeNum==MYSQLI_TYPE_GEOMETRY) { return 'MYSQLI_TYPE_GEOMETRY'; }
return 'nuknownNum=' . $iTypeNum;
}
// mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$oConn=getOConn();
while(true)
{
if($oConn->connect_errno!=0)
{
echo 'conn err:' . $oConn->connect_error;
break;
}
$strSQL='create or replace table tb1(i int primary key, nvc nvarchar(2000) not null);';
if($oConn->query($strSQL)===false)
{
echo 'query err:' . $oConn->error . '<br>sql:' . htmlspecialchars($strSQL) . '<br>'; break;
}
$strSQL='insert into tb1(i,nvc) values(' . getStrNum('1') . ',' . getStrTxt($oConn, '許蓋功氷') . ');';
if($oConn->query($strSQL)===false) { echo '(新增)query err:' . $oConn->error . '<br>sql:' . htmlspecialchars($strSQL) . '<br>'; }
else { echo '(新增)query success:' . $oConn->affected_rows . 'records.<br>'; }
$strSQL='insert into tb1(i,nvc) values(' . getStrNum('2') . ',' . getStrTxt($oConn, "It's a good database!") . ');';
if($oConn->query($strSQL)===false) { echo '(新增)query err:' . $oConn->error . '<br>sql:' . htmlspecialchars($strSQL) . '<br>'; }
else { echo '(新增)query success:' . $oConn->affected_rows . 'records.<br>'; }
$strSQL='insert into tb1(i,nvc) values(' . getStrNum('3') . ',' . getStrTxt($oConn, "太棒了!Great!") . ');';
if($oConn->query($strSQL)===false) { echo '(新增)query err:' . $oConn->error . '<br>sql:' . htmlspecialchars($strSQL) . '<br>'; }
else { echo '(新增)query success:' . $oConn->affected_rows . 'records.<br>'; }
$strSQL='update tb1 set nvc=concat(\'--\', nvc);';
if($oConn->query($strSQL)===false) { echo '(修改)query err:' . $oConn->error . '<br>sql:' . htmlspecialchars($strSQL) . '<br>'; }
else { echo '(修改)query success:' . $oConn->affected_rows . 'records.<br>'; }
$strSQL='select * from tb1;';
$oResult=$oConn->query($strSQL);
if($oResult===false)
{
echo '(查詢)query err:' . $oConn->error . '<br>sql:' . htmlspecialchars($strSQL) . '<br>';
}
else
{
echo '回傳列數:' . $oResult->num_rows . '<br>';
echo '回傳欄數:' . $oResult->field_count . '<br>';
$oFields=$oResult->fetch_fields();
for($iCol=0; $iCol<$oResult->field_count; $iCol++)
{
echo '[' . $oFields[$iCol]->name . '] '; // column name
echo getStrTypeName($oFields[$iCol]->type) . '<br>'; // column type
}
echo '<hr>';
while ($oRow = $oResult->fetch_array(MYSQLI_BOTH))
{
echo htmlentities($oRow['i']) . '-' . htmlentities($oRow['nvc']) . '<br>';
}
}
$strSQL='delete from tb1 where i=2;';
if($oConn->query($strSQL)===false) { echo '(刪除)query err:' . $oConn->error . '<br>sql:' . htmlspecialchars($strSQL) . '<br>'; }
else { echo '(刪除)query success:' . $oConn->affected_rows . 'records.<br>'; }
break;
}
if($oConn->connect_errno==0) { $oConn->close(); }
?>